这是一种vue中组件间的通信方式,适用于 任意组件间通信
1. 安装全局事件总线
前置知识:Vue的实例对象上有 $on、$emit、$off、 事件,这些事件可以用来进行通信
new Vue({
......
beforeCreate(){
Vue.prototype.$bus = this //在Vue的原型对象上绑定$bus指向vm
},
......
})
2. 使用事件总线
- 定义事件:A组件要接收数据,则在A组件中给$bus绑定自定义事件
mounted(){
this.$bus.$on('cb',(args)=>{// 拿到数据后的处理})
}
- 触发事件
this.$bus.$emit('cb','我传递的数据')
- 解绑事件(最好在beforeDestory钩子中)
beforeDestory(){
this.$bus.$off('cb')
}
结语
以上就是事件总线(EventBus)的定义以及使用方式了~