zoukankan      html  css  js  c++  java
  • vue 路由跳转时如何清除掉页面的定时器?

    背景:当前列表需要隔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平行。
  • 相关阅读:
    求树的某一层的节点最多
    快排 PAT 1101
    PAT 1098
    PAt 1099
    多项式求和
    pat 1100
    getline 函数
    数字的标准写法
    线性回归
    HTTP 中状态码 302的使用场景
  • 原文地址:https://www.cnblogs.com/tanweiwei/p/13541608.html
Copyright © 2011-2022 走看看