removeEventListener 取消事件监听

2023-02-19  本文已影响0人  Cherry丶小丸子

通过 addEventListener() 添加的事件处理程序只能使用 removeEventListener() 来移除
移除时传入的参数与添加处理程序时使用的参数相同。这也意味着通过 addEventListener() 添加的匿名函数无法移除

下面这种写法是错误的
onMounted(() => {
    window.addEventListener('resize', () => {
        console.log('监听')
    });
});
onUnmounted(() => {
    window.removeEventListener('resize', () => {
        console.log('移除监听')
    });
});
需要使用以下方法
const calcFillDiv = () => {
    const fnc = data => {
        // do something
    };
    fnc(data);
};

onMounted(() => {
    window.addEventListener('resize', calcFillDiv);
});
onUnmounted(() => {
    // 移除监听事件,一定要和监听事件指向的是同一个方法(共享内存)
    window.removeEventListener('resize', calcFillDiv);
});
上一篇 下一篇

猜你喜欢

热点阅读