项目中对事件总线进行了简单封装,位于src/base/bus.js中。
在任何时候都不允许直接使用mitt或者其他类似的第三方库实现事件总线。
必须先在src/base/bus.js中进行定义,然后在具体位置引入src/base/bus.js中定义好的事件总线定义
/**
* 事件总线 定义
*/
import EventBus from './event-bus/EventBus';
/**
* 定义event bus
* 任意 event bus 的定义,必须添加 bus_ 前缀
* @example
* import { bus_themeChange } from './base/bus.js';
*
* bus_themeChange.emit('light');
*
* bus_themeChange.on((value) => {
* console.log(value); // light
* });
*
* setTimeout(() => {
* bus_themeChange.off();
* }, 1000);
*/
export const bus_themeChange = new EventBus('theme_change');
事件总线中的
前缀定义,不符合前面约定的命名规范,事件总线定义按照此文档进行命名。