gpt4 book ai didi

javascript - 如何防止 Vue Js 组件中事件监听器的多次调用?

转载 作者:行者123 更新时间:2023-12-05 08:47:30 26 4
gpt4 key购买 nike

我正在像这样在事件监听器上调用特定函数。

mounted() {
window.addEventListener("message", this.call); },

methods: {
call(e){
if (e.data === "test"){
this.call2()
}
}
call2(){
console.log("called call2")
}
}

第一次尝试时,call2 被调用一次。但是在第二次尝试时,call2 被调用了两次,并且会在控制台上显示两次“called call2”。等等。对于每次尝试,它只会增加 call2 在单个操作中被调用的次数。有什么办法可以避免这种情况吗?

最佳答案

始终在 beforeDestroy 生命周期 Hook 中删除事件监听器,以防止监听器泄漏。

//Add the event listener
mounted() {
window.addEventListener("message", this.call);
},

//Remove the event listener
beforeDestroy() {
window.removeEventListener("message", this.call);
},

查看 Vue 生命周期以供引用:

enter image description here

关于javascript - 如何防止 Vue Js 组件中事件监听器的多次调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67579997/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com