| 12345678910111213141516171819202122232425262728293031323334353637 |
- export const eventBus = {
- events: {},
- // 注册事件监听
- on(eventName, callback) {
- if (!this.events[eventName]) {
- this.events[eventName] = [];
- }
- this.events[eventName].push(callback);
- },
- // 触发事件
- emit(eventName, data) {
- const callbacks = this.events[eventName] || [];
- callbacks.forEach((callback) => {
- if (typeof callback === "function") {
- callback(data);
- }
- });
- },
- // 移除事件监听
- off(eventName, callback) {
- const callbacks = this.events[eventName];
- if (!callbacks) return;
- if (!callback) {
- delete this.events[eventName];
- return;
- }
- this.events[eventName] = callbacks.filter((item) => item !== callback);
- if (!this.events[eventName].length) {
- delete this.events[eventName];
- }
- }
- };
|