vue使用bus进行组件通信
2019-03-18 本文已影响0人
chengfengwang
官方文档
由于 Vue 实例实现了一个事件分发接口,通过使用事件中心,允许组件自由交流,无论组件处于组件树的哪一层。可以通过实例化一个空的 Vue 实例来实现这个目的。
然后在组件中,可以使用 on, $off 分别来分发、监听、取消监听事件:
- 在main.js中新建一个空的vue实例
var myVue = new Vue();
Vue.prototype.eventHub = myVue;
- 在任意组件触发事件
this.eventHub.$emit('add-todo', { text: 'adddd-todoooo'})
- 在任意组件监听事件
this.eventHub.$on('add-todo', function(e){
console.log(e)
})