vue 定时器销毁的问题

今天的定时器跟以往的不一样

我这里吧定时器包裹在一个方法里然后在beforeDestory里销毁我这么写的

1 beforeDestroy(){
2     
3     clearInterval(this.trainTimer)
4   }

但是离开页面依旧在,因为trainRotation这个方法不清楚 会被其他地方一直调用,所以得清除这个方法才行。

我看了下$destory()来搞,但是发现也没用,不知道怎么用,看到网上有一种清除定时器的方法是使用$once()来做的,

trainRotation(){     
      let trainTimer = setInterval(this.setIntervalue, 2000);
      this.$once('hook:beforeDestroy', () => {            
          clearInterval(trainTimer);  
          trainTimer=null;                                  
      })
    },

this.$once这个方法就监听一次,会自动的在离开页面之前就清除掉定时器,试试效果,真的不错,网上的第一种方法我之前用的,发现根本不适合我这情景,有更好的方法求指教,万分感谢

原文地址:https://www.cnblogs.com/pfybk/p/14894570.html