码迷,mamicode.com
首页 > Web开发 > 详细

Vue清除所有JS定时器

时间:2018-08-07 13:12:10      阅读:209      评论:0      收藏:0      [点我收藏+]

标签:int   webp   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定时器

标签:int   webp   js定时器   判断   没有   不清楚   页面跳转   项目   调用   

原文地址:https://www.cnblogs.com/fannn/p/9435617.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!