码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2019-12-21 22:23:27      阅读:73      评论:0      收藏:0      [点我收藏+]

标签:off   根据   清除   port   color   mit   return   名称   des   

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)

标签:off   根据   清除   port   color   mit   return   名称   des   

原文地址:https://www.cnblogs.com/ayujun/p/12078334.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!