vue中removeEventListener移除匿名函数
时间: 2023-10-20 14:05:57 浏览: 188
解决vue 给window添加和移除resize事件遇到的坑
在 Vue 中,可以通过 `removeEventListener` 方法来移除事件监听器。但是,如果该事件监听器是匿名函数,则无法直接移除。
解决方法如下:
1. 将事件监听器函数命名,可以直接通过函数名移除。
```javascript
// 组件中声明事件监听器
mounted() {
this.handleScroll = function() {
// ...
};
window.addEventListener('scroll', this.handleScroll);
},
// 移除事件监听器
beforeDestroy() {
window.removeEventListener('scroll', this.handleScroll);
}
```
2. 使用 `once` 选项,将事件监听器声明为只执行一次,这样可以在事件触发后自动移除。
```javascript
// 组件中声明事件监听器
mounted() {
window.addEventListener('scroll', function() {
// ...
}, { once: true });
}
```
注意,这种方法仅适用于只需执行一次的事件监听器。如果需要多次执行,则需要使用第一种方法。
阅读全文