由于webpack导入输出,Vuejs eventbus多次触发?

时间:2017-09-11 10:30:32

标签: javascript events webpack vue.js vuejs2

在vuejs项目中,我使用vue事件总线,如this。发出此事件:

  icontag.addEventListener('click', testFunction, false)

  function testFunction () {
    console.log('click1')
    Events.$emit('click2')
  }

在另一个模块中接收它,我得到一个click1输出,但多次click2' s。它看起来非常像每次有一些代码需要webpack导入/导出它会在同一事件的事件总线上触发一个额外的结果...,或者某种东西......,因为在chrome devtools中相关的代码接近click2& #39; s附近有代码__WEBPACK_IMPORTED_MODULE_5__util

知道发生了什么事吗?

编辑: 我认为它可能是一个损坏的热重载设置'。重建dev热重建版后,问题现在似乎已经消失。仍然对类似的经历感兴趣,因为这个问题非常丑陋和持久。

1 个答案:

答案 0 :(得分:1)

我认为Bert的评论是正确的。实际上,您可以在同一事件上多次注册相同的事件处理程序。

尝试在再次添加之前删除eventhandler。

icontag.removeEventListener("click", testFunction);
icontag.addEventListener('click', testFunction, false)

function testFunction () {
  console.log('click1')
  Events.$emit('click2')
}