jiuyiUniapp/jiuyi2/components/public/event-bus.js

23 lines
676 B
JavaScript
Raw Normal View History

2024-12-18 15:46:27 +08:00
import { ref, onMounted, onUnmounted } from 'vue';
export const eventBus = {
listeners: {},
on(eventName, callback) {
if (!this.listeners[eventName]) {
this.listeners[eventName] = [];
}
this.listeners[eventName].push(callback);
},
emit(eventName, ...args) {
const callbacks = this.listeners[eventName];
if (callbacks) {
callbacks.forEach(callback => callback(...args));
}
},
off(eventName, callback) {
const callbacks = this.listeners[eventName];
if (callbacks) {
this.listeners[eventName] = callbacks.filter(cb => cb !== callback);
}
}
};