针对于这个问题,网上也有很多写法,说在周期函数mounted里面去写定时器,然后在beforeDestroy中执行clearInterval,但是不生效,怎么办呢?肯定是那个环节出问题
我们这么解决
在data里面先去定义一个timerOut:null
data () {
return {
timerOut:null,
}
},
然后在调用这个接口的地方写上定时器
mounted(){
this.getTableUp()
this.timerOut = window.setInterval(() => {
setTimeout(this.getTableUp(), 0);
}, 3000);
},
最后在跳转其他路由,也就要销毁本界面中定时器
beforeDestroy() {
clearInterval(this.timerOut);
this.timerOut = null;
},
等于是上了层保险,将定时器的方法指向timeOut这个变量,然后在销毁的时候清空并且将这个变量变为null