1.定义一个定时器,便于停止
data () {
return {
timer: undefined
}
}
2.在方法中设置轮询
this.timer = setInterval(() => {
setTimeout(this.轮询方法名(), 0)
// eslint下会报xxx is defined but never used,加个console.log就好了
console.log(this.timer)
}, 15000)
3.分页、搜索等操作时重新设置定时器
// 先清空定时器
clearInterval(this.timer)
// 重新使用定时器
this.timer = setInterval(() => {
setTimeout(方法, 0)
// eslint会报xxx is defined but never used,加个console.log就好了
console.log(this.timer)
}, 15000)
4.终止定时器
使用router-link的方法进行跳转时,并不会触发destroy,所以只能放在beforeRouteLeave上终止轮询
beforeRouteLeave (to, from, next) {
next()
clearInterval(this.timer)
this.timer = undefined
}