真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

vue通信方式EventBus的實現(xiàn)代碼詳解-創(chuàng)新互聯(lián)

vue通信方式有很多,項目中用的比較多的的有 pros、vuex、$emit/$on 這3種,還有 provide/inject (適合高階組件)、 $attrs$listeners (適合高階組件)以及 $parent/$child/ref、eventBus 等這3種方式。很多時候我們都是只會使用api,而懂得原理以及實現(xiàn),但我就覺得懂得原理以及實現(xiàn)跟一個只會調(diào)用api的開發(fā)人員時不在同一層次的。所以這里就像把跨組件通信的 eventBus 通信的原理給大家展示一下。這也是自己學(xué)到大佬的的東西后并在此記錄(轉(zhuǎn)載)一下。

成都創(chuàng)新互聯(lián)公司-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比陸良網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式陸良網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋陸良地區(qū)。費用合理售后完善,十載實體公司更值得信賴。
class EventBus{
    constructor(){
      this.event=Object.create(null);
    };
    //注冊事件
    on(name,fn){
      if(!this.event[name]){
        //一個事件可能有多個監(jiān)聽者
        this.event[name]=[];
      };
      this.event[name].push(fn);
    };
    //觸發(fā)事件
    emit(name,...args){
      //給回調(diào)函數(shù)傳參
      this.event[name]&&this.event[name].forEach(fn => {
        fn(...args)
      });
    };
    //只被觸發(fā)一次的事件
    once(name,fn){
      //在這里同時完成了對該事件的注冊、對該事件的觸發(fā),并在最后并取消該事件。
      const cb=(...args)=>{
        //觸發(fā)
        fn.apply(this,args);
        //取消
        this.off(name,fn);
      };
      //監(jiān)聽
      this.on(name,cb);
    };
    //取消事件
    off(name,offcb){
      if(this.event[name]){
        let index=this.event[name].findIndex((fn)=>{
          return offcb===fn;
        })
        this.event[name].splice(index,1);
        if(!this.event[name].length){
          delete this.event[name];
        }
      }
    }
  }

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。


網(wǎng)站標題:vue通信方式EventBus的實現(xiàn)代碼詳解-創(chuàng)新互聯(lián)
URL分享:http://weahome.cn/article/pchdi.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部