最近的项目里用到了mitt库,这个库是用于组件间通信的。我在某个参考的项目里发现,开发者在mounted中执行emitter.on监听某个事件,又在beforeDestroy里通过emitter.off来取消监听。由于我对vue组件的理解不够,我寻思组件都销毁了为什么还得通过emitter.off来取消事件的监听,没必要吧。今天遇到一个Bug,我只触发了一次事件,emitter.on里的回调却执行了两次,尝试了多次发现,如果不通过emitter.off来取消事件的监听,那么当前组件在销毁=>重新加载后,还保留着上次的监听,这样一来就有两个监听了。
展开
评论
1
)![[流泪]](http://lf-web-assets.juejin.cn/obj/juejin-web/xitu_juejin_web/img/jj_emoji_6.dde0d83.png)