在vue生命周期中及时销毁全局作用的代码

时间:2022-05-14 22:49:25

一、纯客户端中

对于全局的代码,比如定时器等,在 beforeDestroy或 destroyed 生命周期时将其销毁。如果在跳转路由时候,组件销毁了,全局的定时器却没有销毁,这会使得页面产生卡顿。

beforeDestroy(){
clearInterval(this.intervalId);
} 

 

二、服务端渲染过程中

  所有的生命周期钩子函数中,只有 beforeCreate 和 created 会在服务器端渲染(SSR)过程中被调用。这就是说任何其他生命周期钩子函数中的代码(例如 beforeMount 或 mounted),只会在客户端执行。

  由于在 SSR 期间并不会调用销毁钩子函数,所以 timer 将永远保留下来。为了避免这种情况,请将副作用代码移动到 beforeMount 或 mounted 生命周期中。

相关文章