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