vue使用bus进行组件通信

2019-03-18  本文已影响0人  chengfengwang

官方文档
由于 Vue 实例实现了一个事件分发接口,通过使用事件中心,允许组件自由交流,无论组件处于组件树的哪一层。可以通过实例化一个空的 Vue 实例来实现这个目的。
然后在组件中,可以使用 emit,on, $off 分别来分发、监听、取消监听事件:

  1. 在main.js中新建一个空的vue实例
var myVue = new Vue();
Vue.prototype.eventHub = myVue;
  1. 在任意组件触发事件
this.eventHub.$emit('add-todo', { text: 'adddd-todoooo'})
  1. 在任意组件监听事件
this.eventHub.$on('add-todo', function(e){
      console.log(e)
    })
上一篇 下一篇

猜你喜欢

热点阅读