zoukankan      html  css  js  c++  java
  • node event中 on emit off 的封装

    事件绑定一个事件名称对应多个事件函数 应此它们的关系是一对多的关系 数据类型采用对象的形式
    key:val 因为函数有多个 所以val选用数组


    事件仓库

    eventList = {


    key:val,
    key:val

    }

    let eventList = {};
    

      

    1.绑定事件

                 on(eventName,cb){}


                      第一步判断当前事件是否存在 如果不存在 初始化一下 key:[] 然后在将cb push到数据中去即可

                  

    const $on=(eventName,cb)=>{
    
        if(!eventList[eventName]){
            eventList[eventName] = [];
        }
        eventList[eventName].push(cb)
    }
    

      2.触发事件

                    emit(eventName,params){}

                    第一步判断事件名称是否存在 如果存在 遍历数组中的所有函数调用即可 如果params存在 将params传递函数中

         

    const $emit = (eventName,params)=>{
    
        if(eventList[eventName]){
            let arr = eventList[eventName];
            arr.map((cb)=>{
                cb(params)
            })
        }
    }
    

      3.解绑事件

               off(eventName,cb){}


                 第一步判断事件名称是否存在 如果存在 再次判断第二个参数是否存在 如果存在将这个cb从当前数组中移除
                 如果第二个参数不存在 清空数据

    const $off = (eventName,cb)=>{
        if(eventList[eventName]){
            if(cb){
                let index = eventList[eventName].indexOf(cb);
                eventList[eventName].splice(index,1);
    
            }else{
                eventList[eventName].length = 0;
                
            }
        }
    }

     

     

  • 相关阅读:
    DOM元素的位置、尺寸及更多的信息
    BASE1(matlab)
    安装 sublime package control
    php 排序
    highstock
    html5 压缩图片 上传
    2016012016+小学四则运算练习软件项目报告
    构建之法初次阅读之1,2,16章
    一段异步操作的代码(清理缓存)
    计算两点距离 ios
  • 原文地址:https://www.cnblogs.com/9420i/p/10245937.html
Copyright © 2011-2022 走看看