VUE 設(shè)置定時器和清理定時器

2021-8-31    前端達(dá)人

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

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


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

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


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

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


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

然鵝,并沒什么卵用,在切換頁面后,定時任務(wù)依然頑強(qiáng)的奔跑著。


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

可能是我的姿勢不對吧。害羞.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. }) 復(fù)制代碼

哇,成功了...



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

文章來源:csdn

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

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




日歷

鏈接

個人資料

存檔