在 vuejs 项目中,我使用 vue 事件总线,如 this .发出此事件:
icontag.addEventListener('click', testFunction, false)
function testFunction () {
console.log('click1')
Events.$emit('click2')
}
然后在另一个模块中接收它,我得到一个 click1 的输出,但多次 click2 的输出。看起来很像每次有一些代码需要 webpack 导入/导出时,它会在同一事件的事件总线上触发一个额外的结果......,或者......,因为在 chrome devtools 中相关代码接近 click2's附近有类似 __WEBPACK_IMPORTED_MODULE_5__util
的代码。
知道发生了什么吗?
编辑: 我认为这可能是“损坏的热重载设置”。重建开发热重载构建后,问题现在似乎消失了。仍然对类似的经历感兴趣,因为这个问题非常丑陋且持续存在。
最佳答案
我认为 Bert 的评论是正确的。您实际上可以在同一事件上多次注册相同的事件处理程序。
尝试删除事件处理程序,然后再次添加。
icontag.removeEventListener("click", testFunction);
icontag.addEventListener('click', testFunction, false)
function testFunction () {
console.log('click1')
Events.$emit('click2')
}
关于javascript - 由于 webpack import outport,Vuejs eventbus 触发多次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46153524/