Vue事件总线

const listeners = {};
export default {
    // 监听某一个事件
    $on(eventName, handler) {
        if(!listeners[eventName]) {
            listeners[eventName] = new Set();
        }
        listeners[eventName].add(handler);
    },
    // 取消监听
    $off(eventName, handler) {
        if(!listeners[eventName]) return;
        listeners[eventName].delete(handler);
    },
    // 触发事件
    $emit(eventName, ...args) {
        if(!listeners[eventName]) return;
        for(let handler of listeners[eventName]) {
            handler(...args);
        }
    }
}

posted @ 2024-06-01 15:50  HuangBingQuan  阅读(2)  评论(0编辑  收藏  举报