一、理解
1.Vue原型对象上包含事件处理的方法
1)$on(eventName,listener少:绑定自定义事件监听
2)$emit(eventName,data:分发自定义事件
3)$off(eventName):解绑自定义事件监听
4)$once(eventName,listener):绑定事件监听,但只能处理一次
2.所有组件实例对象的原型对象的原型对像就是Vue的原型对象
1)所有组件对象都能看到Vue原型对象上的属性和方法
2)Vue.prototype.$bus=new Vue(0,所有的组件对象都能看到$bus这个属性对象
3.全局事件总线
1)包含事件处理相关方法的对象(只有一个)
2)所有的组件都可以得到
二、指定事件总线对象
new Vue({ beforeCreate () { // 尽量早的执行挂载全局事件总线对象的操作 Vue.prototype.$globalEventBus = this }, }).$mount('#root')
三、绑定事件
this.$globalEventBus.$on('deleteTodo', this.deleteTodo)
四、分发事件
this.$globalEventBus.$emit('deleteTodo', this.index)
五、解绑事件
this.$globalEventBus.$off('deleteTodo')