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');
        
  • 相关阅读:
    uIP学习笔记
    ALIENTEK 战舰ENC28J60 LWIP和UIP补充例程
    PID整定方法
    ENC28j60以太网芯片驱动程序简介
    Petit FatFs
    如何使用可控硅?(详细教程)
    Linux查看系统资源占用
    驾照科目三考试通过需要注意什么?
    科目三考试
    驾照的科目三考试中,如何完成直线行驶?
  • 原文地址:https://www.cnblogs.com/robot666/p/11111503.html
Copyright © 2011-2022 走看看