个人理解
通过一个参数去实现任意组件间通信的一个方法
这个参数需要被所有VueComponents看见
仅仅可以在Vue2中使用, 因 Vue3中已经废弃了prototype
第一步:实现全局事件总线
在main.js中
// 创建vm的实例对象
new Vue({
// 将App组件放入容器中
render: h => h(App),
beforeCreate() {
Vue.prototype.$bus=this //安装全局总线
},
}).$mount('#app')
通过绑定到vm实例对象身上,实现任意组件都可以看见这个$bus
这里我定义两个组件,为兄弟关系进行演示
在brother.vue 组件中
mounted() {
this.$bus.$on('hello',data=>{
console.log('收到了数据',data);
})
},
通过生命周期函数绑定函数,
通俗理解,那个组件需要数据,在那个组件中写回调,
在组件中的this指的是vc(VueComponents)实例对象,在它身上可以看见$bus, 通过$