一、纯客户端中
对于全局的代码,比如定时器等,在 beforeDestroy
或 destroyed
生命周期时将其销毁。如果在跳转路由时候,组件销毁了,全局的定时器却没有销毁,这会使得页面产生卡顿。
beforeDestroy(){
clearInterval(this.intervalId);
}
二、服务端渲染过程中
所有的生命周期钩子函数中,只有 beforeCreate
和 created
会在服务器端渲染(SSR)过程中被调用。这就是说任何其他生命周期钩子函数中的代码(例如 beforeMount
或 mounted
),只会在客户端执行。
由于在 SSR 期间并不会调用销毁钩子函数,所以 timer 将永远保留下来。为了避免这种情况,请将副作用代码移动到 beforeMount
或 mounted
生命周期中。