Vue清除所有JS定時器


Vue清除所有JS定時器

在webpack + vue 的項目中如何在頁面跳轉的時候清除所有的定時器

 

JS定時器會有一個返回值(數字),通過這個返回值我們可以找到這個定時器

在vue項目中可以使用路由守衛的 beforeEach方法,來進行清除功能

首先,聲明一個全局變量數組,把所有的定時器的返回值放到數組中,
(因為定時器返回的值會隨着調用次數的增加而增加,所以無法確定的去判斷返回值具體是多少,只有接收這個返回值,然后進行操作。)
然后在每次要跳轉進入新頁面的時候,通過beforeEach方法,把舊頁面的定時器全部清除

//聲明數組,接收定時器的返回值
const timerCount = [];

//設置定時器

timerCount[0] = setInterval(function () {
    //....
},1000)

timerCount[1] = setInterval(function () {
    //....
},1000)


//入口文件
router.beforeEach((to, from, next) => {
    for(let i = 0; i <= timerCount.length; i++){
        clearInterval(timerCount[i]);
    }
    timerCount.splice(0, timerCount.length)
    next()
})
//使用clearInterval(i)可以清除指定的定時器,其中參數i是定時器的返回值
//這里每次都把數組清除了,當然,不清楚也沒有什么影響

 

這樣,頁面所有的定時器,就全部清除了

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM