在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属性表示当前这个组件是否被销毁
时间: 2024-11-05 22:30:37