A和B是两个组件,但是A和B不存在父子关系,他们之间可以使用事件总线进行通信
在入口main.js文件中创建总线实例,并绑定到vue属性中
Vue.prototype.$bus = new Vue()
A组件
可通过this.$bus.$on
来监听事件
B组件
可通过this.$bus.$emit
发射事件
常见问题
- 比如监听事件执行多次,可以考虑在监听之前使用
this.$bus.$off
取消监听 - 事件监听不起效果,建议大家结合vue的生命周期思考一下,之后就明白了
A和B是两个组件,但是A和B不存在父子关系,他们之间可以使用事件总线进行通信
Vue.prototype.$bus = new Vue()
可通过this.$bus.$on
来监听事件
可通过this.$bus.$emit
发射事件
this.$bus.$off
取消监听