2021-8-31 前端達人
1、在data中聲明要設置的定時器名稱:
data() { return { timer: null // 定時器名稱 } },復制代碼
2、在mounted中創建定時器:
this.timer = (() => { // 某些操作 }, 5000)復制代碼
3、在頁面注銷時清理定時器:
beforeDestroy() { clearInterval(this.timer); this.timer = null; }復制代碼
然鵝,并沒什么卵用,在切換頁面后,定時任務依然頑強的奔跑著。
beforeDestroy() { clearInterval(this.timer); this.timer = null; console.log(this.timer) //輸出為: null,但是任務依然在繼續運行 }復制代碼
可能是我的姿勢不對吧。害羞.jpg
經過在各大論壇一番查找發現:
通過$once這個事件偵聽器在定義完定時器之后的位置來清除定時器:
$once
const timer = setInterval(() =>{ // 某些定時器操作 }, 5000); // 通過$once來監聽定時器 // 在beforeDestroy鉤子觸發時清除定時器 this.$once('hook:beforeDestroy', () => { clearInterval(timer); }) 復制代碼
哇,成功了...
藍藍設計建立了UI設計分享群,每天會分享國內外的一些優秀設計,如果有興趣的話,可以進入一起成長學習,請掃碼ben_lanlan,報下信息,會請您入群。歡迎您加入噢~~希望得到建議咨詢、商務合作,也請與我們聯系。
分享此文一切功德,皆悉回向給文章原作者及眾讀者. 免責聲明:藍藍設計尊重原作者,文章的版權歸原作者。如涉及版權問題,請及時與我們取得聯系,我們立即更正或刪除。
藍藍設計( www.syprn.cn )是一家專注而深入的界面設計公司,為期望卓越的國內外企業提供卓越的UI界面設計、BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、 網站建設 、平面設計服務
藍藍設計的小編 http://www.syprn.cn