全局事件总线

这篇学习笔记介绍了Vue全局事件总线的概念和工作原理,用于解决组件间的通信问题。通过创建一个公共的Vue实例$bus,使得任何组件都能触发和监听事件,实现数据传递。在组件的beforeCreate阶段将$bus挂载到原型链上,beforeDestroy时解绑事件,确保组件间的通信高效且无内存泄漏。
摘要由CSDN通过智能技术生成

学习笔记

全局事件总线就是为了实现各个组件的自由通信,传递数据

原理是假设有组件A和组件B,A和B之间关系可以是兄弟,父子,爷孙任意关系。然后A和B之间有一个中间商C,然后A可以在自身给C设置一个自定义事件,以及回调函数,然后假如B要给A传数据,就可以通过这个自定义事件去启动它,再后面传入数据作为参数。因此事件触发后运行回调函数,因为回调函数在A自身上,所所以A就得到了数据。

C正规名字叫$bus

条件1:中间商C是要A和B以及后续所有组件实例对象都能访问到的,因此可以将C设置在Vue.prototype.$bus(因为:vueComponent.prototype._proto_ === Vue.prototype)所以只要设置在上面后,所有的vc实例都可以访问到C

条件2:可以调用到$on、$off、$emit。这些是Vue实例和VC实例上的,因此$bus是要作为一个Vue实例或者VC实例,建议Vue实例,因为可以在main.js文档里唯一的Vue实例上的beforeCreate上直接添加Vue.prototype.$bus=this。这样就可以实现通信了

在beforeDestroy里最好解绑当前组件的用到的事件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值