Vue清除所有JS定时器

在webpack + vue 的项目中如何在页面跳转的时候清除所有的定时器

JS定时器会有一个返回值(数字),通过这个返回值我们可以找到这个定时器

在vue项目中可以使用路由守卫的 beforeEach方法,来进行清除功能

首先,声明一个全局变量数组,把所有的定时器的返回值放到数组中,
(因为定时器返回的值会随着调用次数的增加而增加,所以无法确定的去判断返回值具体是多少,只有接收这个返回值,然后进行操作。)

//声明数组,接收定时器的返回值
var timerCount = [];

//设置定时器
//需要判断当前页面是否存在定时器,没有才继续添加定时器,这样才能完全清除

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

//使用clearInterval(0)可以清除指定的定时器,
并且将数组timerCount = [];//置空

clearInterval(timerCount[0])
this.timerCount  = [];

//这里每次都把数组清除了,当然,不清楚也没有什么影响

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

Logo

Vue社区为您提供最前沿的新闻资讯和知识内容

更多推荐