封装事件订阅来进行非父子组件的传值(React)

Posted ayujun

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了封装事件订阅来进行非父子组件的传值(React)相关的知识,希望对你有一定的参考价值。

const list={}

// 将事件名和事件函数装进事件池里
function  $on(name,func) {
    if(!name || !func) return;
    if(!Object.keys(list).includes(name)){
        list[name]=func;
    }
}
// 根据事件名称搜索事件池 找到执行
function $emit(name,...arg) {
    if(!name) return;
    if(Object.keys(list).includes(name)){
        list[name](...arg)
    }
}

// 执行完并且不在需要后 清除事件
function $off(name) {
    if(!name) return;
    if(Object.keys(list).includes(name)){
        list[name]=null;
        delete list[name]
    }
}
export {
    $on,
    $emit,
    $off,
}

以上是关于封装事件订阅来进行非父子组件的传值(React)的主要内容,如果未能解决你的问题,请参考以下文章

非父子组件间的传值

非父子组件间的传值

React 父子组件和非父子组件传值

Vue组件通信之非父子组件传值

vue知识总结第一篇vue组件的定义以及父子组件的传值。

React父子组件间的传值