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