Vue-事件监听器泄漏

时间:2018-12-11 11:23:46

标签: javascript events vue.js listener directive

在组件安装上添加新的本机事件侦听器(el.addEventListener('scroll', () => blabla))时,是否应该在销毁组件时将其删除?还是会自动删除?

我在网上找到的所有示例均引用window.addEventListener,正如预期的那样,在应用程序的生命周期内不会随时将其删除,因此需要手动清理监听器。

我的具体情况:我创建了一个自定义的Vue指令以检测组件滚动事件,并在插入钩子上附加了一个侦听器,想知道是否也应该在未绑定钩子上删除该侦听器。

我的指令代码:

  bind(el, binding) {
    el._scrollHandler = evt => binding.value(evt, el);
    el.addEventListener('scroll', el._scrollHandler);
  },

  unbind(el) {
    el.removeEventListener('scroll', el._scrollHandler);
  }

0 个答案:

没有答案