第二十三章 Vue组件通信之非父子组件通信

目录

一、引言

1.1. event bus 事件总线

1.1.1. 实现步骤

1.2. provide & inject

1.2.1. 实现步骤 

二、event bus事件总线完整代码

2.1. 工程结构图 

​2.2. main.js

2.3. App.vue

2.4. EventBus.js

2.5. BaseC.vue

2.6. BaseB.vue

2.7. BaseA.vue

三、provide & inject

3.1. 工程结构图

3.2. main.js

3.3. App.vue

3.4. GrandSon.vue

3.5. SonA.vue

3.6. SonB.vue


一、引言

前面几个章节我们重点讲解了在Vue中组件的关系类别及父子组件的通信解决方案,本章内容将详细讲解关于非父子组件间的通信解决方案。那么非父子组件的通信我们分为两种:

1.1. event bus 事件总线

作用:非父子组件之间,进行简易消息传递。(复杂场景 → Vuex)

1.1.1. 实现步骤

1. 创建一个都能访问到的事件总线 (空 Vue 实例) → 在utils包下创建EventBus.js

2. A 组件(接收方),监听 Bus 实例的事件

3. B 组件(发送方),触发 Bus 实例的事件

1.2. provide & inject

作用:跨层级共享数据

注:在使用跨层级进行父组件和子孙组件进行共享数据时,能够进行简单数据类型(非响应式)及复杂数据类型(响应式)的共享,但是实际使用过程中,我们建议使用复杂类型来做数据共享,因为该类型的数据是响应式的,因此其他组件在获取使用时能够直接生效。

1.2.1. 实现步骤 

1. 父组件 provide 提供数据

2. 子/孙组件 inject 取值使用

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值