解決vue組件銷毀之后計時器繼續執行的問題
直接上代碼,以下
window.setTimeout(function(){ if(this && !this._isDestroyed){ //_isDestroyed 組件是否被銷毀 return; } window.location.href = 'http://www.aoyou183.cn/serverMonitor?t='+ new Date().getTime();},5000)
很粗暴的方法,在執行之前看是否被銷毀就行,
第二種方法,調用路由組件內的鉤子函數beforeRouteLeave
beforeRouteLeave(to,from,next){clearTimeout(window.timer);next();}
補充知識:vue銷毀時事件,created和mounted&&activated的區別
我就廢話不多說了,大家還是直接看代碼吧~
// 關閉當前頁面就會銷毀監聽事件(checkpay)destroyed() { clearInterval(this.checkpay)}created()在創建vue對象時,在html渲染之前就觸發;但是注意created()只會觸發一次; mounted()在html渲染完成之后才會執行的; activated()進入當前存在activated()函數的頁面時,一進入頁面就觸發;可用于初始化頁面數據等
以上這篇解決vue組件銷毀之后計時器繼續執行的問題就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持好吧啦網。
相關文章: