背景:當前列表需要隔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平行。