【vue3】依赖注 provide、inject(父组件与儿子、孙子、曾孙子组件之间的传值)

news2024/9/23 23:24:05

一、基本用法:


//父组件
import { ref, provide } from 'vue'
const radio = ref<string>('red')
provide('myColor',radio) //注入依赖

//儿子组件、孙子组件、曾孙子组件
import { inject } from 'vue'
import type { Ref } from 'vue';
const myColor = inject<Ref<string>>('myColor') //获取

二、示例:

在这里插入图片描述


//parent.vue
<template>
    <div>
        <p>这是父级组件</p>
        <el-radio-group v-model="radio">
            <el-radio label="red">红色</el-radio>
            <el-radio label="yellow">黄色</el-radio>
            <el-radio label="blue">蓝色</el-radio>
        </el-radio-group>
        <div class="box" :style="setStyle()"></div>
    </div>
    <Son></Son>
</template>

<script setup lang='ts'>
import { ref, provide } from 'vue'
import Son from '../components/Son.vue';
const radio = ref<string>('red')
provide('myColor',radio) //注入依赖

const setStyle = ()=>{
    return {
        backgroundColor:radio.value
    }
}


</script>
<style scoped lang='scss'>
.box {
    width: 200px;
    height: 200px;
    border: 1px solid #ccc;
    transition: all 1s;
}
</style>


//son.vue
<template>

    <div>
        <p>这是儿子组件</p>
        <div class="box" :style="setStyle()"></div>
    </div>
    <Grandson></Grandson>

</template>

<script setup lang='ts'>
    import { inject } from 'vue'
    import type { Ref } from 'vue'; 
    import Grandson from './Grandson.vue';
    const myColor = inject<Ref<string>>('myColor')

    //设置背景颜色-方法一
    const setStyle = ()=>{
        return {
            // backgroundColor:myColor?.value
        }
    }

</script>
<style scoped lang='scss'>
.box{
    width: 200px;
    height: 200px;
    border: 1px solid #ccc;
    // 设置背景颜色-方法二
    background-color: v-bind(myColor);
    transition: all 1s;
}

</style>


//grandSon.vue
<template>

    <div>
        <p>这是孙子组件</p>
        <div class="box"></div>
    </div>

</template>

<script setup lang='ts'>
    import { inject } from 'vue'
    const myColor = inject('myColor')

</script>
<style scoped lang='scss'>
.box{
    width: 200px;
    height: 200px;
    border: 1px solid #ccc;
    background-color: v-bind(myColor);
    transition: all 1s;
}

</style>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1131626.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

保护云数据安全的关键环节是什么?

云数据安全是维护数据隐私和保护关键信息的关键一环。在云中存储和处理数据提供了巨大的便利性和效率&#xff0c;但同时也伴随着风险。本文将介绍保护云数据的关键环节是什么! 1、数据加密&#xff1a;在传输和存储数据时使用强加密是保护数据的基本步骤。确保数据在云中存储时…

C++类与对象,构造函数,析构函数,拷贝构造函数

C类与对象&#xff0c;构造函数&#xff0c;析构函数&#xff0c;拷贝构造函数 1. 类的6个默认成员对象2. 构造函数2.1 概念2.2 特性 3. 析构函数3.1 概念3.2 特性 4. 拷贝构造函数4.1 概念4.2 特性 所属专栏&#xff1a;C“嘎嘎" 系统学习❤️ &#x1f680; >博主首页…

uni-app:实现picker下拉列表的默认值设置

效果 分析 1、在data中将index8的初始值设置为-1&#xff0c;表示未选择任何选项&#xff1a; index8: -1, //选择的下拉列表下标 2、在bindPickerChange8事件处理函数中添加条件判断。如果选择的值是-1&#xff0c;则将this.index8设置为"请输入"&#xff0c;否则将…

智能电表远程抄表在电力系统中的运用分析

摘要&#xff1a;随着我国国民经济的提升&#xff0c;人民的生活水平不断改善。智能小区的建设在城市中得到了迅速发展&#xff0c;智能电表在各个小区内十分常见。 本文简单阐述智能电表远程抄表在电力系统中的相关功能和实现方法&#xff0c;详细分析了智能电表远程抄表在电…

docker环境,ubuntu18.04安装VTK8.2和PCL1.9.1

下载源码和依赖库 首先下载源码VTK8.2: Download | VTK 下载PCL1.9.1链接&#xff1a;Releases PointCloudLibrary/pcl GitHub 下载好了以后&#xff0c;先安装PCL依赖 sudo apt-get update sudo apt-get install git build-essential linux-libc-dev sudo apt-get instal…

Windows安装Redis,并设置开机启动保姆版

Redis是一种键值对数据库&#xff0c;也称为内存数据库&#xff0c;因为它可以将数据存储在内存中&#xff0c;而不是在磁盘上。它主要用于高速读写数据和缓存。Redis支持多种数据结构&#xff0c;如字符串、哈希、列表、集合和有序集合等&#xff0c;并提供了许多高级功能&…

03142《互联⽹及其应⽤》各章简答题解答(课后习题)

03142《互联⽹及其应⽤》各章简答题解答&#xff08;课后习题&#xff09; *第* *1* *章* *名词解释* 互联网网络&#xff08;Internet&#xff09; 互联网是建立在一组共同协议之上的网络设备和线路的物理集合&#xff0c;是一组可共享的资源集。&#xff08;1 分&#xf…

c语言进制的转换10进制转换16进制

c语言进制的转换10进制转换16进制 c语言的进制的转换 c语言进制的转换10进制转换16进制一、16进制的介绍二、10进制转换16进制的方法 一、16进制的介绍 十六进制&#xff1a; 十六进制逢十六进一&#xff0c;所有的数组是0到9和A到F组成&#xff0c;其中A代表10&#xff0c;B代…

班级管理高效工具

随着科技的进步&#xff0c;教学管理也正在逐步迈向数字化。成绩查询系统就是其中之一&#xff0c;它不仅方便快捷&#xff0c;而且大大提高了我们的工作效率。那么&#xff0c;成绩查询系统是什么呢&#xff1f;如何用各种代码、Excel来实现让学生自助查询成绩呢&#xff1f;下…

微信小程序设计之主体文件app-ts/js

一、新建一个项目 首先&#xff0c;下载微信小程序开发工具&#xff0c;具体下载方式可以参考文章《微信小程序开发者工具下载》。 然后&#xff0c;注册小程序账号&#xff0c;具体注册方法&#xff0c;可以参考文章《微信小程序个人账号申请和配置详细教程》。 在得到了测…

基于springcloud+web实现智慧养老平台系统项目【项目源码+论文说明】计算机毕业设计

基于springcloudweb实现智慧养老平台系统演示 摘要 首先,论文一开始便是清楚的论述了系统的研究内容。其次,剖析系统需求分析,弄明白“做什么”,分析包括业务分析和业务流程的分析以及用例分析,更进一步明确系统的需求。然后在明白了系统的需求基础上需要进一步地设计系统,主要…

关于 LLM 和知识图谱、图数据库,大家都关注哪些问题呢?

自 LLM 系列文章《知识图谱驱动的大语言模型 Llama Index》、《Text2Cypher&#xff1a;大语言模型驱动的图查询生成》、《Graph RAG: 知识图谱结合 LLM 的检索增强》陆续和大家见面&#xff0c;以及《夜谈 LLM》主题直播同大家交流一番 LLM 和知识图谱、图数据库之后&#xff…

深眸科技以需求定制AI视觉解决方案,全面赋能产品外观缺陷检测

产品外观是影响产品质量最重要的因素之一&#xff0c;其平整度、有无瑕疵等不仅影响到产品美观&#xff0c;甚至能够直接影响产品本身的使用和后续加工&#xff0c;给企业带来重大经济损失。 随着人工智能技术的快速发展&#xff0c;机器视觉与AI技术的结合应用加速渗透进工业…

长三角实现区块链电子医疗票据互联互通,蚂蚁链提供技术支持

10月25日&#xff0c;记者从浙江省财政厅发布的消息获悉&#xff0c;上海、浙江、江苏和安徽三省一市基于蚂蚁链实现区块链电子医疗票据互联互通&#xff0c;商业保险理赔作为首个规模化应用场景正式落地&#xff0c;蚂蚁保“安心赔”理赔服务率先接入。 今后&#xff0c;老百…

linux 内存检测工具 kfence 详解

版本基于&#xff1a; Linux-5.10 约定&#xff1a; PAGE_SIZE&#xff1a;4K 内存架构&#xff1a;UMA 0. 前言 本文 kfence 之外的代码版本是基于 Linux5.10&#xff0c;最近需要将 kfence 移植到 Linux5.10 中&#xff0c;本文借此机会将 kfence 机制详细地记录一下。 k…

2023-10-25 LeetCode每日一题(求一个整数的惩罚数)

2023-10-25每日一题 一、题目编号 2698. 求一个整数的惩罚数二、题目链接 点击跳转到题目位置 三、题目描述 给你一个正整数 n &#xff0c;请你返回 n 的 惩罚数 。 n 的 惩罚数 定义为所有满足以下条件 i 的数的平方和&#xff1a; 1 < i < ni * i 的十进制表示…

Linux repo 文件复习学习

在此学习了Linux repo 文件 https://blog.csdn.net/bcbobo21cn/article/details/123159702 下面复习和学习一些新内容&#xff1b; linux repo就是指“repository”&#xff1b;在使用yum命令的时候系统会自动读取repo文件&#xff0c;然后去repositry获取软件&#xff1b;通…

MOTHERNEST双十一我们的目标是:不愁货——有!不愁钱——折!

喜迎双十一&#xff0c;MOTHERNEST进入开抢模式&#xff0c;水飞蓟护肝片&#xff0c;牛初乳粉&#xff0c;液体钙维生素D3胶囊将进行抢购模式&#xff0c;每人限购4件。 开抢时间&#xff1a; 2023.10.31 20:00-2023.10.31 23:59 2023.11.03 20:00-2023.11.03 23:59 限量每…

震坤行亮相2023工博会,并荣获第23届中国工博会“CIIF信息技术奖”

震坤行亮相2023工博会&#xff0c;并荣获第23届中国工博会“CIIF信息技术奖” 2023年9月19日&#xff0c;2023年第23届中国国际工业博览会CIIF&#xff08;以下简称“工博会”&#xff09;在上海国家会展中心盛大开幕。震坤行紧跟智能制造产业发展步伐&#xff0c;携数字化解决…

[ACTF2020 新生赛]Exec 1

题目环境&#xff1a;是一个ping操作&#xff0c;ping个127.0.0.1试试有回显结果看起来有点像PWN的题&#xff0c;猜测通过列出目录文件&#xff0c;是否存在flag文件&#xff0c;并查看文件内容&#xff0c;并且存在两种方法解题&#xff0c;一种是管道符&#xff0c;一种是堆…