Vue清除所有JS定时器

Posted Fannn

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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是定时器的返回值
//这里每次都把数组清除了,当然,不清楚也没有什么影响

 

这样,页面所有的定时器,就全部清除了

 


















以上是关于Vue清除所有JS定时器的主要内容,如果未能解决你的问题,请参考以下文章

vue+定时器实现滚动列表动效

JS定时器

jq刷新页面会定时器会清除么

vue如何清除定时器

Vue定时器setInterval的使用和清除

javascript怎么清除所有的定时器setInterval