问题:页面在使用 setTimeout 定时循环某方法,或者在两个页面之间跳转时间小于定时器的时间间隔时,定时器还在运行。
原因:当我们刷新页面时,会将当前页面之前创建的 setTimeout 以及其他定时器都清除掉,但是仅仅是路由切换是不会清除的。
data (){
return{
clearTime: ''
}
},
mounted () {
randomGet () {
// 在 1分钟到 2分钟之间 不定时执行
var r = Math.random() * (2 - 1) + 1
var t = Math.ceil(r * 60000)
// console.log(t)
this.clearTime = setTimeout(() => {
this.submit()
this.randomGet()
}, t)
},
submit () {
console.log('aaaa')
}
},
destroyed () {
clearTimeout(this.clearTime) // 清除
}