定时器是在mounted中开始执行的,在beforeDestroy中清除的,正常操作都没有问题,但是在快速切换页面的时候,会出现定时器清不掉的情况,好几个定时器会同时调用
那你在destoryed里清除呢,你是把定时器赋值给data里的属性吗?
getTime() {
let timer = setTimeout(() => {
this.time = tools_time.getDate();
console.log(this.time);
this.getTime();
}, 1000);
this.$once("hook:beforeDestroy", () => {
clearTimeout(timer);
});
},
定时器,就会有这个问题,无论加在哪个生命周期,本人亲历体验这个坑 ,这是js 事件驱动的bug 可以结合webworker 来处理 这样就能解决拉!
activated () {
console.log('实例被激活时使用,用于重复激活一个实例的时候')
//这里去清楚试试
}
用这个试试,可能和缓存有关系
vue的生命周期在执行的时候并不是同步的,这样做事为了防止你切换页面出现卡顿,你定时器的方案需要改变一下。