在组件安装上添加新的本机事件侦听器(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);
}