15621857753

VUE学习18:全局事件总线 任意组件间通信

来源:齐鲁建站 栏目:开发教程 阅读: 日期:2023-11-28

全局事件总线 一种组件间通信的方式,适用于任意组件间通信。与消息订阅与发布相比,全局事件总线是VUE自带的,所以性能更好~

全局事件总线 一种组件间通信的方式,适用于任意组件间通信。

一、安装全局事件总线

进入main.js,写入下方红色部分

new Vue({
    ......
    beforeCreate() {
        Vue.prototype.$bus = this //安装全局事件总线,$bus就是当前应用的vm
    },

    ......
}) 

二、使用事件总线

1 进入接收数据方,比如:A组件想接收数据,则在A组件中给$bus绑定自定义事件(也就是钩子),事件的回调留在A组件自身。

这里也有两个方法,一种是methods+mounted的方法,如下所示:

methods(){
  demo(data){......}
}

......
mounted() {
  this.$bus.$on('xxxx',this.demo)
}

另一种是只用mounted的方法(使用箭头函数),如下所示:

mounted() {
  this.$bus.$on('xxxx',(yyy)=>{
      console.log('我是XXX,收到数据:', yyy)
  })
}

2 提供数据:

this.$bus.$emit('xxxx',数据)

3 最好在beforeDestroy钩子中,用$off去解绑当前组件所用到的事件

展开