三十二、全局事件总线(GlobalEventBus)

郁子小于 1 分钟约 203 字笔记Vue2尚硅谷张天禹

(一)定义

  • 一种组件间通信的方式
  • 适用于 任意组件间通信

(二)安装全局事件总线

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

(三)使用事件总线

1.接收数据

  • A 组件想接收数据,则在 A 组件中给 $bus 绑定自定义事件
  • 事件的 回调留在 A 组件自身
methods() {
  demo(data) {...}
},
// ...
mounted() {
  this.$bus.$on("xxx", this.demo);
  // 或者
  this.$bus.$on("xxx", (data) => {...});
}

2.提供数据

this.$bus.$emit("xxx", 数据);

(四)备注

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

上次编辑于: