vue3 依赖注入provide/inject

建议在非父子(或不相关)组件传值时进行使用

场景:App.vue 引用了A组件,A组件中有引用了B组件,甚至B有引用了C组件等时,这些组件共同使用了一个值,建议使用provide/inject的方式进行传值。
注意:
  • 1 vue3 中可以使用v-bind方式绑定script里的变量
  • -2 在组件中更改inject传递过来的值,其它组件通过reject传递的值也会进行更改。

代码示例如下:

App.vue 组件:

<template><div>App 引入A B 组件</div><div class="test-provide"></div><A></A>
</template><script setup lang="ts">
import { ref, provide } from 'vue';
// vue3中 组件引入后,可直接使用
import A from './A.vue'const colorValue = ref<string>('red')// 需要两个参数,类似于key,value
provide('color',colorValue)</script><style lang="scss" scoped>
.test-provide {width:20px;height: 20px;background: v-bind(colorValue);
}</style>

A.vue

<template><div>A component</div><div class="test-provide"></div><B></B>
</template><script setup lang="ts" name="A">
import B from './B.vue'
import { inject } from 'vue'
// 引入 类型
import type {Ref} from 'vue'// 由于App.vue 传递的是ref<String>类型,在inject接收的时候需增加泛型,要不会是unkonw类型
const colorValue = inject<Ref<String>>('color')
</script><style scoped>
.test-provide {width:20px;height: 20px;/* vue3 中可以使用v-bind方式绑定script里的变量 */background: v-bind(colorValue);}
</style>

B.vue

<template><div>B component</div><div class="test-provide"></div><button @click="updateColor">修改颜色值</button>
</template><script setup lang="ts" name="B">
import { inject } from 'vue'
import type {Ref} from 'vue'const colorValue = inject<Ref<String>>('color')// 可通过在组件中更改值,其它组件中的值也会进行更改
const updateColor = ()=>{colorValue.value = 'yellow'
}
</script><style scoped>
.test-provide {width:20px;height: 20px;background: v-bind(colorValue);}
</style>

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

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

相关文章

Kubernetes operator系列:webhook 知识学习【更新中】

云原生学习路线导航页&#xff08;持续更新中&#xff09; 本文是 Kubernetes operator学习 系列文章&#xff0c;本节会对 kubernetes webhook 知识进行学习 本文的所有代码&#xff0c;都存储于github代码库&#xff1a;https://github.com/graham924/share-code-operator-st…

C语言例3-12:自增和自减运算的例子

i 先引用后加1--i 先减1后引用 代码如下&#xff1a; #include<stdio.h> int main(void) {int i2, j2;char c1d, c2D; //d(100) D(68)printf("i %d\n",i); //3, i3printf("j-- %d\n",j--); …

C++for语句

1.求平均年龄 班上有学生若干名,给出每名学生的年龄(整数),求班上所有学生的平均年龄,保留到小数点后两位 输入 第1行有一个整数n(1 <= n <=100),表示学生的人数;其后n行每行有1个整数,表示每个学生的年龄,取值为15~25 输出 一行,包含一个浮点数,为所求的平…

java实现压缩文件夹(层级压缩)下载,java打包压缩文件夹下载

工具类如下 打包下载方法&#xff1a;exportZip&#xff08;支持整个文件夹或单文件一起&#xff09; 注意:前端发送请求不能用ajax&#xff0c;form表单提交可以&#xff0c;location.href也可以&#xff0c;window.open也可以&#xff0c;总之就ajax请求就是不行 import com.…

生成式人工智能如何赋能SOC分析师?

以下是已经在全球SOC崭露头角的六大生成式人工智能应用。 在当今网络安全威胁日益严峻的形势下&#xff0c;安全运营中心(SOC)肩负着重大责任。然而&#xff0c;SOC分析师往往人手不足&#xff0c;工作繁重。生成式人工智能(GenAI)的出现为缓解这一困境带来了希望&#xff0c;使…

python:NP28---密码游戏

文章目录 前言一、题意描述输入描述&#xff1a;输出描述&#xff1a; 二、代码1.代码的实现2.读入数据 总结 前言 在python基础知识的学习中&#xff0c;我们很多时候会遇见让我们把数字拆分成各个位数的题&#xff0c;下面这道就是经典的数字拆分的l例题 一、题意 描述 牛…

工具篇--从零开始学Git

一、git概述 1.1版本控制方式 集中式版本控制工具 集中式版本控制工具&#xff0c;版本库是集中存放在中央服务器的&#xff0c; team 里每个人 work 时从中央服务器下载代码&#xff0c;是必须联网才能工作&#xff0c; 局域网或互联网&#xff0c;个人修改之…

IAB视频广告标准《数字视频和有线电视广告格式指南》之 简介、目录及视频配套广告 - 我为什么要翻译介绍美国人工智能科技公司IAB系列(2)

写在前面 谈及到中国企业走入国际市场&#xff0c;拓展海外营销渠道的时候&#xff0c;如果单纯依靠一个小公司去国外做广告&#xff0c;拉渠道&#xff0c;找代理公司&#xff0c;从售前到售后&#xff0c;都是非常不现实的。我们可以回想一下40年前&#xff0c;30年前&#x…

【学习记录】调试千寻服务+DTU+导远RTK过程的记录

最近调试车载定位的时候&#xff0c;遇到了一些问题&#xff0c;千寻服务已经正确配置到RTK里面了&#xff0c;但是导远的定位设备一直显示RTK浮动解&#xff0c;通过千寻服务后台查看状态&#xff0c;长时间显示不合法的GGA值。 首先&#xff0c;通过四处查资料&#xff0c;千…

嵌入式面经-ARM体系架构-计算机基础

嵌入式系统分层 操作系统的作用&#xff1a;向下管理硬件&#xff0c;向上提供接口&#xff08;API&#xff09; 应用开发&#xff1a;使用操作系统提供的接口&#xff08;API&#xff09;&#xff0c;做上层的应用程序开发&#xff0c;基本不用去关内核操作硬件是怎么实现的 …

网络架构层_服务器上下行宽带

网络架构层_服务器上下行宽带 解释一 云服务器ECS网络带宽的概念、计费、安全及使用限制_云服务器 ECS(ECS)-阿里云帮助中心 网络带宽是指在单位时间&#xff08;一般指的是1秒钟&#xff09;内能传输的数据量&#xff0c;带宽数值越大表示传输能力越强&#xff0c;即在单位…

蓝桥杯第十一届电子类单片机组程序设计

目录 前言 单片机资源数据包_2023&#xff08;点击下载&#xff09; 一、第十一届比赛原题 1.比赛题目 2.赛题解读 1&#xff09;计数功能 2&#xff09;连续按下无效按键 二、部分功能实现 1.计数功能的实现 2.连续按下无效按键的处理 3.其他处理 1&#xff09;对于…

verilog中,何时用reg和wire

何时用&#xff1f; 组合逻辑用wire&#xff0c;时序逻辑用reg。 reg 可以存储数据&#xff0c;wire则就是一根线&#xff0c;只能传递数据。 比如&#xff1f; 时序逻辑 always ( posedge clk or negedge rst_n) begin// big river goes to the east endinitial begin//…

每天一个数据分析题(二百一十一)

关于优化模型的3个组成部分&#xff0c;下列描述不正确的是&#xff08;&#xff09; A. 目标函数&#xff1a;要优化的函数&#xff08;目标函数中不包含决策变量&#xff09; B. 目标函数&#xff1a;要优化的函数&#xff08;最大化或最小化&#xff09; C. 决策变量&…

CentOS7.9 安装SIPp3.6

epel里面的SIPp版本比较旧&#xff0c;先不要epel yum remove -y epel-release 编辑 /etc/yum.repos.d/okay.repo&#xff0c;内容为&#xff1a; [okay] nameExtra OKay Packages for Enterprise Linux - $basearch baseurlhttp://repo.okay.com.mx/centos/$releasever/$basea…

栈的顺序存储结构的构建(C++)+ 两栈共享空间

栈顶指针为-1的时候代表栈为空 栈的类定义 &#xff1a; const int N 1000; class SStack{public:SStack();//构造空栈~SStack();//析构函数void push(int x);//入栈int pop();//出栈int getTop();//取栈顶元素bool empty();//判空private:int data[N];//存放栈元素的数组in…

SQLiteC/C++接口详细介绍之sqlite3类(八)

返回目录&#xff1a;SQLite—免费开源数据库系列文章目录 上一篇&#xff1a;SQLiteC/C接口详细介绍之sqlite3类&#xff08;七&#xff09; 下一篇&#xff1a; SQLiteC/C接口详细介绍之sqlite3类&#xff08;八&#xff09;&#xff08;暂未发表&#xff09; 24.sqlite3_cr…

OSCP靶场--BlackGate

OSCP靶场–BlackGate 考点(1.redis rce 2. CVE-2021-4034提权) 1.nmap扫描 ┌──(root㉿kali)-[~/Desktop] └─# nmap -sV -sC -p- 192.168.163.176 --min-rate 2500 Starting Nmap 7.92 ( https://nmap.org ) at 2024-03-14 03:32 EDT Nmap scan report for 192.168.163.…

牛-迈面试题----答案/类似题/知识点

来源在这里 来源在这里 1.Redis的优势 (1) 速度快&#xff0c;因为数据存在内存中&#xff0c;类似于HashMap&#xff0c;HashMap的优势就是查找和操作的时间复杂度都很低 (2)支持丰富数据类型&#xff0c;支持string&#xff0c;list&#xff0c;set&#xff0c;sorted set&…

docker部署keepalived(搭建keepalived)

1&#xff1a;拉去镜像osixia/keepalived [rootlocalhost ~]# docker pull osixia/keepalived Using default tag: latest latest: Pulling from osixia/keepalived 89d9c30c1d48: Pull complete c9ada908efbe: Pull complete 4a9101e4ada9: Pull complete b428f77d2dc4: P…