vue中使用setTimeout

在vue的函数中使用setTimeout

self.distroyTimeout = setTimeout(()=>{

  self.initData()

},1000)

这时清除setTimeout需要在destoryed周期中进行

destoryed(){

  window.clearTimeout(this.distroyTimeout)

}

但是这样做在逻辑复杂的情况下还是出现了没有关闭setTimeout的情况,以下是一种更好的解决方案

let self = this

if(self && self.distroyTimeout){

  setTimeout(()=>{

    if(self && self.distroyTimeout){

      self.initData()
    }
  },1000)

}

在这里distroyTimeout属性表示当前这个组件是否被销毁

原文地址:https://www.cnblogs.com/cnundefined/p/vue_setTimeout.html