当前位置:网站首页>非父子组件的通信
非父子组件的通信
2022-07-07 03:12:00 【要成为光的女人】
这里我们主要讲两种方式:
- Provide/Inject
- Mitt全局事件总线;
一、Provide和Inject(子孙级)
Provide/Inject 用于非父子组件之间共享数据:
- 比如有一些深度嵌套的组件,子组件想要获取父组件的部分内容;
- 在这种情况下,如果我们仍然将props沿着组件链逐渐传递下去,就会非常的麻烦;
对于这种情况下,我们可以使用Provide和Inject:
- 无论层级结构有多深,父组件都可以作为其所有子组件的依赖提供者;
- 父组件有一个provide 选项来提供数据
- 子组件有一个inject 选项来开始使用这些数据
Provide和Inject 的使用
在真实开发里面provide里面的数据不是写死的,可能来自于服务器,这时候要想拿到data里面的数据,vue建议最好将proviede写成一个函数。
处理响应式数据:
注意:上一案例中我们的数据一次性,当我们数据发生变化的时候,Provide里面的数据是无任何响应变化的,(computed箭头函数是不绑定this的,也就是说我们现在给length赋值的时候,是赋的computed函数的返回值,因为computed里面的this是对data里面的值是有依赖的,一旦依赖发生改变,computed的值就会重新计算,会有一个新的值,就会给length赋值新的值。)
使用:
二、全局事件总线mitt库
1.先安装
npm install mitt -D
2.其次,我们可以封装一个工具eventbus.js:
3.使用
监听事件:在生命周期里监听,也是拿到emitter对象
Mitt事件取消
//取消emitter中所有的监听
emitter.all.clear()
//定义一个函数
function onFoo(){}
emitter.on('foo',onFoo) //监听
emitter.off('foo',onFoo) //取消监听
边栏推荐
猜你喜欢
. Net 5 fluentftp connection FTP failure problem: this operation is only allowed using a successfully authenticated context
MOS管参数μCox得到的一种方法
Linear algebra (1)
华为机试题素数伴侣
Data of all class a scenic spots in China in 2022 (13604)
[noi simulation] regional division (conclusion, structure)
MySQL view bin log and recover data
循环肿瘤细胞——Abnova 解决方案来啦
企业如何进行数据治理?分享数据治理4个方面的经验总结
关于数据库数据转移的问题,求各位解答下
随机推荐
MATLAB小技巧(30)非线性拟合 lsqcurefit
from . onnxruntime_ pybind11_ State Import * noqa ddddocr operation error
企业如何进行数据治理?分享数据治理4个方面的经验总结
FPGA课程:JESD204B的应用场景(干货分享)
Complete process of MySQL SQL
根据IP获取地市
Jetpack Compose 远不止是一个UI框架这么简单~
分布式id解决方案
化工园区危化品企业安全风险智能化管控平台建设四大目标
RuntimeError: CUDA error: CUBLAS_STATUS_ALLOC_FAILED when calling `cublasCreate(handle)`问题解决
Networkx绘图和常用库函数坐标绘图
Unable to debug screen program with serial port
Navicat importing 15g data reports an error [2013 - lost connection to MySQL server during query] [1153: got a packet bigger]
Prime partner of Huawei machine test questions
MYSQL binlog相关命令
MySQL user permissions
7天零基础能考证HCIA吗?华为认证系统学习路线分享
After the promotion, sales volume and flow are both. Is it really easy to relax?
基于JS的迷宫小游戏
Stack and queue-p78-8 [2011 unified examination true question]