Event Bus

初始化

  • EventBus 是一个不具备 DOM 的组件,仅仅具有它的实例方法
  • 基座中使用的是全局注册:即 发布/订阅模式
    1
    2
    3
    4
    5
    6
    7
    8
    9
    // event-bus.js
    import Vue from 'vue'
    export const EventBus = new Vue()

    // 全局注册 不需要注册
    Vue.prototype.$eventBus = new Vue()
    // 或者
    import { EventBus } from './eventBus';
    Vue.prototype.$eventBus = new EventBus()

发布事件 / 订阅事件

1
2
3
4
5
// 发布消息
this.$eventBus.$emit(channel: string, callback(payload1,…))

// 监听订阅消息
this.$eventBus.$on(channel: string, callback(payload1,…))

移除事件监听

  • A向eventBus发送事件,重新进入B会创建多次监听,所以要及时销毁
    1
    this.$eventBus.$off('aMsg')
文章目录
  1. 1. 初始化
  2. 2. 发布事件 / 订阅事件
  3. 3. 移除事件监听