事件訂閱封裝

2022-08-04 01:06:12 字數 709 閱讀 4173

/*

事件存放的倉庫

多個事件

每個事件會對應多個事件函式

aaa:

haha:

eventlist:

$on 事件繫結 eventname callback

乙個事件對應多個事件函式

1、分析繫結的這個事件名稱在事件倉庫中是否存在 如果存在則直接將事件函式新增到陣列中去

2、如果不存在則建立乙個陣列然後將事件函式新增到陣列中去

$emit 事件的觸發 eventname params

1、分析當前事件名稱是否存在,如果存在則遍歷陣列中所有的事件進行觸發 將引數傳遞到陣列中去

$off 事件解綁 eventname callback

1.分析當前事件名稱是否存在 如果存在則 判斷第二個引數是否存在 如果存在則 解綁對應的函式

如果不存在則解綁全部

*/let eventlist =

const $on = (eventname,callback)=>

eventlist[eventname].push(callback);

}const $emit = (eventname,params)=>)

}}const $off = (eventname,callback)=>

else

}}export

default

c 訂閱事件

this.btnzmaocal 0.click new eventhandler btnzmaocal click this.btnzmaocal 1.click new eventhandler btnzmaocal click this.btnzmaocal 2.click new eventh...

JavaScript事件發布 訂閱

1 發布 訂閱模式也是諸多設計模式當中的一種 2 這種方式可以在es5下相當優雅地處理非同步操作 3 什麼是發布 訂閱呢?我們舉個栗子 假設fn1,fn2,fn3都可以視作乙個事件的發布者,執行它,就會發布乙個事件。這個時候,我們可以通過乙個事件的訂閱者去批量訂閱並處理這些事件,包括它們的先後順序。...

訂閱發布模式 事件

實現訂閱發布模式的基本思路 訂閱者把自己想訂閱的事件註冊到排程中心,所以第一步應該先實現訂閱者到排程中心的方法。訂閱方法 排程中心統一排程訂閱者註冊到排程中心的處理 發布方法 訂閱者取消訂閱事件 取消訂閱方法 直接附上 var pubsub one function evt,fn,ctx off f...