全局事件总线(GlobalEventBus)
- 一种组件间通信的方式,适用于任意组件间通信
- 安装全局事件总线:
1 | new Vue({ |
使用事件总线
接收数据:A组件想接收数据,则在A组件中给$bus绑定自定义事件,事件的回调留在A组件自身。
1
2
3
4
5
6methods() {
demo(data) {....}
},
mounted() {
this.$bus.$on('xxxx', this.demo);
}提供数据:
this.$bus.$emit('xxxx', 数据)
解绑自定义事件
最好在beforeDestroy钩子中,使用$off取解绑当前组件所用到的事件。
//main.js
new Vue({
el: '#app',
render: h => h(App),
beforeCreate() {
Vue.prototype.$bus = this;
}
})