Vue中setTimeout和setInterval如何实现组件销毁时自动清除?

2026-04-03 01:170阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计576个文字,预计阅读时间需要3分钟。

Vue中setTimeout和setInterval如何实现组件销毁时自动清除?

在Vue的大型单页应用中,某个路由下经常会出现需要延迟执行(如setTimeout)或定时执行(如setInterval)的函数。但每次页面destroy前,都必须手动清理掉。通常代码如下:

javascriptbeforeDestroy() { clearTimeout(this.timeoutId); clearInterval(this.intervalId);}

在Vue的大型单页应用中,在某个路由下,经常会出现需要延迟执行(setTimeout)或者间隔之心(setInterval)的函数,但是每次在页面destroy之前,都必须手动清理掉。

正常代码如下:

Vue中setTimeout和setInterval如何实现组件销毁时自动清除?

beforeDestroy() { this._timer && clearTimeout(this._timer); }

但是如果一不小心,就会忘记,会造成意想不到的情况,那么有什么办法能避免这种情况吗?

当然有,那就是重新写一个setTimeout的方法(或者干脆劫持window.setTimeout)。

阅读全文

本文共计576个文字,预计阅读时间需要3分钟。

Vue中setTimeout和setInterval如何实现组件销毁时自动清除?

在Vue的大型单页应用中,某个路由下经常会出现需要延迟执行(如setTimeout)或定时执行(如setInterval)的函数。但每次页面destroy前,都必须手动清理掉。通常代码如下:

javascriptbeforeDestroy() { clearTimeout(this.timeoutId); clearInterval(this.intervalId);}

在Vue的大型单页应用中,在某个路由下,经常会出现需要延迟执行(setTimeout)或者间隔之心(setInterval)的函数,但是每次在页面destroy之前,都必须手动清理掉。

正常代码如下:

Vue中setTimeout和setInterval如何实现组件销毁时自动清除?

beforeDestroy() { this._timer && clearTimeout(this._timer); }

但是如果一不小心,就会忘记,会造成意想不到的情况,那么有什么办法能避免这种情况吗?

当然有,那就是重新写一个setTimeout的方法(或者干脆劫持window.setTimeout)。

阅读全文