2022.11.30 全局事件总线的理解

本文介绍了Vue全局事件总线的概念,它作为一个公共通讯渠道,允许组件间进行数据传递。通过在Vue.prototype上设置$bus,确保所有组件都能访问。在组件的beforeCreate钩子中初始化$bus为this。使用时,接收数据的组件需绑定$on监听事件,发送数据的组件调用$emit触发事件。组件销毁时,需用$off解绑事件以防止内存泄漏。全局事件总线简化了非父子组件间的通信。
摘要由CSDN通过智能技术生成

全局事件总线:适用于组件间传递数据。

第一部分:全局事件总线的理解

1.全局事件总线就像公共物品,每个组件都可以使用。用$bus来表示。

2.全局事件总线得满足两个条件。

(1)每个组件都可以访问到。意味着放在Vue.prototype最合适。

(2)全局事件总线,可以访问到$on  $emit  $off方法。但是这些方法都在Vue.prototype上。只有组件实例和Vue实例能访问到。所以全局事件总线,得是组件实例和Vue实例。

根据以上两个条件分析,全局事件总线,最好是Vue实例。

所以可以在脚手架入口文件,Vue配置对象中添加 beforeCreate(){Vue.prototype.$bus=this},

从而完成对全局事件总线的配置。

第二部分:全局事件总线的使用

1.明确谁接收数据,谁发送数据。

(1)接收数据的组件:给全局事件总线绑定事件。

this.$bus.$on("事件名",事件回调函数)

(2)发送数据的组件:触发全局事件总线某个事件。

this.$bus.$emit("时间名",数据)

2.组件销毁时要记得解绑全局事件总线上相关的事件。

beforedestroy(){  this.$bus.$off("事件名")  }

注意:一定要写事件名,不然会把全局事件总线绑定的事件全部解绑了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值