| 123456789101112131415161718192021222324252627282930313233343536373839 | // event-bus.js(改进版)const eventBus = {  events: {},  cachedEvents: {}, // 缓存已触发的事件    // 监听事件(支持获取历史缓存事件)  on(event, callback, getCached = true) {    if (!this.events[event]) {      this.events[event] = [];    }    this.events[event].push(callback);    console.log('======renwu ',this.events[event]);    // 如果有缓存事件,立即执行回调    if (getCached && this.cachedEvents[event]) {      callback(this.cachedEvents[event]);    }  },    // 触发事件(缓存最新数据)  emit(event, data) {    this.cachedEvents[event] = data;    if (this.events[event]) {      this.events[event].forEach(callback => callback(data));    }  },    // 清除缓存事件  clear(event) {    if (event) {      this.events[event] = []      delete this.cachedEvents[event];    } else {      this.events = {}      this.cachedEvents = {};    }  }};export default eventBus;
 |