Vue全局事件总线

276 阅读1分钟

一种 组件间通信的方式(觉得和单例模式效果一样)。

就是组件之间传递数据的载体,就像公共汽车,之所以用$bus,是因为有总线和公共汽车的意思。

实现:new Vue({
        ......
        beforeCreate(){
            Vue.propotype.$bus.$on = this //全局事件总线,$bus就是Vue组件的实例
        },
        ......
})
在事件总线上创建一个事件:
mounted(){
    this.$bus.$on('事件名',()=>{}) //放一个需要的是事件,箭头函数是这个事件触发后,调用的回调函数
}
在合适的时候触发事件总线上的事件:
this.$bus.$emit('事件名',数据) //触发$bus上的事件名,传递数据