1、使用的情景。
当需要调用的方法和数据不在同一个组件的时候,这个时候可能用事件(也就是方法)总线去存储方法,这样就可以实现其他组件调用本组件的方法,其他组件的数据传入到本组件
2、注册,初始化,在main.js文件
beforeCreate() {
Vue.prototype.$bus = this
},
如图
把方法注册到事件总线,存储方式是key,value;key表示事件名,value表示方法。调用的时候是通过事件名调用。
mounted() {
this.$bus.$on('checkTodo',this.checkTodo)
this.$bus.$on('deleteTodo',this.deleteTodo)
},
其他组件调用总线方法
this.$bus.$emit('checkTodo',id)
checkTodo表示总线的方法,而后面的id是传入到方法的参数
解绑事件总线的代码
this.$globalEventBus.$off('checkTodo')