背景:当前列表需要隔5分钟进行一次定时刷新;
问题: 没有清除定时的话,进入其它页面了,定时器依然执行;
解决办法:使用组件内的守卫beforeRouteLeave;
data里面定义了一个变量
data(){
return {
timedTasksCollector: null,
}
}
把定时器的任务定义在activated事件,这样子,当清除定时后,下次再次进入当前路由的话,可以再次唤起定时器
activated() {
this.timedTasksCollector = setInterval(() => {
this.getNeedCollectLoanOrderList();
}, 300000);
},
清除的方法
beforeRouteLeave(to, from, next){
next();
if (this.timedTasksCollector) {
clearInterval(this.timedTasksCollector);
this.timedTasksCollector = null;
}
},
beforeRouteLeave跟methods平行。