EventHub 基本實現
- 首先 eventHub 是模塊之間進行傳遞的一種方式,採用發佈訂閱模式。關於概念好想也沒啥說的。下一步就是找到 eventHub 須要實現的方法,分別是
emit
、on
、off
。
- 基本思路是,咱們有個緩存能存儲監聽器,當時對應的事件觸發(emit)時,調用監聽器就好,當想要註銷事件時,off 一下就行了。
上述就是簡單的實現啦,實際上咱們能夠再抽象一下監聽器的概念,將全部的 handler 都抽象成一個 listener ,相似於 addEventListener 同樣。 git
實際上到這一步,咱們很粗糙的 EventHub 算是完成了,可是咱們還能夠儘可能的優化一下。
下面就是優化後的版本。 github
若是,以爲圖太長了,能夠來個人 github 瞧瞧。 緩存