Vue中setTimeout和setInterval如何实现组件销毁时自动清除?
- 内容介绍
- 文章标签
- 相关推荐
本文共计576个文字,预计阅读时间需要3分钟。
在Vue的大型单页应用中,某个路由下经常会出现需要延迟执行(如setTimeout)或定时执行(如setInterval)的函数。但每次页面destroy前,都必须手动清理掉。通常代码如下:
javascriptbeforeDestroy() { clearTimeout(this.timeoutId); clearInterval(this.intervalId);}
在Vue的大型单页应用中,在某个路由下,经常会出现需要延迟执行(setTimeout)或者间隔之心(setInterval)的函数,但是每次在页面destroy之前,都必须手动清理掉。
正常代码如下:
beforeDestroy() { this._timer && clearTimeout(this._timer); }
但是如果一不小心,就会忘记,会造成意想不到的情况,那么有什么办法能避免这种情况吗?
当然有,那就是重新写一个setTimeout的方法(或者干脆劫持window.setTimeout)。
本文共计576个文字,预计阅读时间需要3分钟。
在Vue的大型单页应用中,某个路由下经常会出现需要延迟执行(如setTimeout)或定时执行(如setInterval)的函数。但每次页面destroy前,都必须手动清理掉。通常代码如下:
javascriptbeforeDestroy() { clearTimeout(this.timeoutId); clearInterval(this.intervalId);}
在Vue的大型单页应用中,在某个路由下,经常会出现需要延迟执行(setTimeout)或者间隔之心(setInterval)的函数,但是每次在页面destroy之前,都必须手动清理掉。
正常代码如下:
beforeDestroy() { this._timer && clearTimeout(this._timer); }
但是如果一不小心,就会忘记,会造成意想不到的情况,那么有什么办法能避免这种情况吗?
当然有,那就是重新写一个setTimeout的方法(或者干脆劫持window.setTimeout)。

