zoukankan      html  css  js  c++  java
  • 如何封装$on,$emit,$off——学vue前你必须懂得封装!

    let evevtListenr = {}
    封装$on
    const $on = (eventName,cb)=>{
        if(!evevtListenr[eventName]){
            evevtListenr[eventName] =[];
        }
        evevtListenr[eventName].push(cb);
        }
        封装$emit
    const $emit = (eventName,params)=>{
            if(evevtListenr[eventName]){
                evevtListenr[eventName].map((cb)=>{
                    cb(params);
                })
            }
        }
    封装$off
        const $off = (eventName,cb)=>{
            if(evevtListenr[eventName]){
                if(cb){
                let index=vevtListenr[eventName].indexof(cb);
                evevtListenr[eventName].splice(index,1);
                }else{
                    evevtListenr[eventName].length=0;
                }
            }
        }
        
        function fn1(val){
            console.log(111,val);
        };
        function fn2(val){
            console.log(222,val);
        };
        function fn3(val){
            console.log(333,val);
        }
        $on('work1',fn1);
        $on('work1',fn2);
        $on('work1',fn3);
        $emit('work1');
        
  • 相关阅读:
    extjs__(grid Panel绑定数据)
    web项目中对post请求乱码处理
    lucene之Field属性的解释
    spring整合mybatis框架
    jasperreports实现pdf文档的生成
    ireport图形化界面生成pdf文档
    iText框架(生成pdf文档)
    spring配置问题
    动手实践PHP7的HashTable
    基于epoll实现一个IO多路复用的回声服务器
  • 原文地址:https://www.cnblogs.com/robot666/p/11111503.html
Copyright © 2011-2022 走看看