色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

vue cleartimeout無效

錢淋西2年前10瀏覽0評論

Vue中的clearTimeout函數可以用來清除之前設置好的定時器。但有時會出現clearTimeout無效的情況,即定時器并未被清除。下面我們來一起探討clearTimeout無效的原因及解決方法。

在Vue的生命周期函數中使用window.setTimeout,常用的生命周期函數如created、mounted等。下面是一個示例:

created() {
this.timer = window.setTimeout(() =>{
console.log('定時器執行!');
}, 1000)
},
methods: {
stopTimer() {
clearTimeout(this.timer);
}
}

上述代碼在組件創建后會設置一個1秒的定時器,stopTimer方法則用于清除定時器:

然而,有時會出現點擊停止按鈕后,定時器并未被清除。這是因為Vue的生命周期函數中的window.setTimeout并非原生的setTimeout函數,而是經過Vue特殊處理的。因此,調用clearTimeout(this.timer)并不能清除定時器。

解決方法是使用匿名函數或箭頭函數來包裝定時器代碼,這樣可以避免Vue對setTimeout的特殊處理。修改后的代碼如下:

created() {
this.timer = setTimeout(() =>{
console.log('定時器執行!');
}, 1000)
},
methods: {
stopTimer() {
clearTimeout(this.timer);
}
}

以上便是解決Vue中clearTimeout無效的方法,我們需要注意Vue對setTimeout函數的特殊處理,使用普通的setTimeout函數來設置定時器即可。