EventHub 基本实现
- 首先 eventHub 是模块之间进行传递的一种方式,采用发布订阅模式。关于概念好想也没啥说的。下一步就是找到 eventHub 须要实现的方法,分别是
emit
、on
、off
。
- 基本思路是,咱们有个缓存能存储监听器,当时对应的事件触发(emit)时,调用监听器就好,当想要注销事件时,off 一下就行了。
上述就是简单的实现啦,实际上咱们能够再抽象一下监听器的概念,将全部的 handler 都抽象成一个 listener ,相似于 addEventListener 同样。 git
实际上到这一步,咱们很粗糙的 EventHub 算是完成了,可是咱们还能够尽可能的优化一下。
下面就是优化后的版本。 github
若是,以为图太长了,能够来个人 github 瞧瞧。 缓存