javascript - 由于 webpack import outport,Vuejs eventbus 触发多次?

标签 javascript events webpack vue.js vuejs2

在 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/

相关文章:

javascript - 访问 d3 包布局中的比例因子

javascript - 实现组合函数和返回结果的问题

C# 不是一个事件

java - 事件溯源 - 将事件从 AR 传递到实体

reactjs - 部署新的 Webpack 包会导致错误,直到页面刷新

javascript - 使用 knockout.js 在 select 上使用值绑定(bind)更新整个对象?

php - 在 php 的 javascript 中获取 Checkbox[] 值

reactjs - 在 webpack 中响应多个 css 加载器

javascript - 如何禁用 onclick 事件

css - Webpack 将 CSS 编译成奇怪的类名