vue利用定时器请求接口,跳转路由后定时器一直执行的解决办法

针对于这个问题,网上也有很多写法,说在周期函数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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值