最近的项目里用到了mitt库,这个库是用于组件间通信的。我在某个参考的项目里发现,开发者在mounted中执行emitter.on监听某个事件,又在beforeDestroy里通过emitter.off来取消监听。由于我对vue组件的理解不够,我寻思组件都销毁了为什么还得通过emitter.off来取消事件的监听,没必要吧。今天遇到一个Bug,我只触发了一次事件,emitter.on里的回调却执行了两次,尝试了多次发现,如果不通过emitter.off来取消事件的监听,那么当前组件在销毁=>重新加载后,还保留着上次的监听,这样一来就有两个监听了。
展开
fireworks99于2024-10-16 08:09发布的图片
评论