VUE 設置定時器和清理定時器

2021-8-31    前端達人

使用鉤子函數(shù)對定時器進行清理,失敗了,

1、在data中聲明要設置的定時器名稱:


  1. data() {
  2. return {
  3. timer: null // 定時器名稱
  4. }
  5. },復制代碼

2、在mounted中創(chuàng)建定時器:


  1. this.timer = (() => {
  2. // 某些操作
  3. }, 5000)復制代碼

3、在頁面注銷時清理定時器:


  1. beforeDestroy() {
  2. clearInterval(this.timer);
  3. this.timer = null;
  4. }復制代碼

然鵝,并沒什么卵用,在切換頁面后,定時任務依然頑強的奔跑著。


  1. beforeDestroy() {
  2. clearInterval(this.timer);
  3. this.timer = null;
  4. console.log(this.timer) //輸出為: null,但是任務依然在繼續(xù)運行
  5. }復制代碼

可能是我的姿勢不對吧。害羞.jpg

經(jīng)過在各大論壇一番查找發(fā)現(xiàn):

通過$once這個事件偵聽器在定義完定時器之后的位置來清除定時器:


  1. const timer = setInterval(() =>{
  2. // 某些定時器操作
  3. }, 5000);
  4. // 通過$once來監(jiān)聽定時器
  5. // 在beforeDestroy鉤子觸發(fā)時清除定時器
  6. this.$once('hook:beforeDestroy', () => {
  7. clearInterval(timer);
  8. }) 復制代碼

哇,成功了...



藍藍設計建立了UI設計分享群,每天會分享國內(nèi)外的一些優(yōu)秀設計,如果有興趣的話,可以進入一起成長學習,請掃碼ben_lanlan,報下信息,會請您入群。歡迎您加入噢~~希望得到建議咨詢、商務合作,也請與我們聯(lián)系。

文章來源:csdn

分享此文一切功德,皆悉回向給文章原作者及眾讀者.
免責聲明:藍藍設計尊重原作者,文章的版權歸原作者。如涉及版權問題,請及時與我們?nèi)〉寐?lián)系,我們立即更正或刪除。

藍藍設計sillybuy.com )是一家專注而深入的界面設計公司,為期望卓越的國內(nèi)外企業(yè)提供卓越的UI界面設計、BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、 網(wǎng)站建設 、平面設計服務




分享本文至:

日歷

鏈接

個人資料

藍藍設計的小編 http://sillybuy.com

存檔