Vue组件销毁时内存泄漏怎么办?教你如何正确使用unmounted钩子

轻磊小哥_1774

轻磊小哥_1774

2026-05-15

1058人浏览

原创

vue组件销毁时内存泄漏主因是未手动清理外部资源:需在unmounted中清除定时器、abort请求、解绑事件监听器、销毁第三方实例、停止watch并避免强引用响应式对象。

vue组件销毁时内存泄漏怎么办?教你如何正确使用unmounted钩子

Vue组件销毁时内存泄漏,核心在于你手动引入的外部资源没被清理——Vue不会替你解绑全局事件、清除定时器、中断请求或销毁第三方实例。unmounted钩子不是自动回收开关,而是你主动释放资源的明确时机。

清理定时器和未完成的异步操作

在setup中用setTimeout、setInterval或发起fetch/axios请求后,若组件已卸载,回调仍可能执行并尝试修改响应式数据,导致警告甚至内存泄漏。

  • 用ref保存定时器ID,在unmounted中调用clearTimeout或clearInterval
  • 对fetch请求,创建AbortController实例,传入signal选项;在unmounted中调用controller.abort()
  • 避免在then/catch里直接赋值ref,不依赖isMounted标记,优先用abort机制切断链路

解绑所有手动添加的事件监听器

通过window、document、EventBus或mitt绑定的监听器,不会随组件自动移除,必须成对清理。

vue-composition-api-best-practices
vue-composition-api-best-practices

Vue 3 组合式 API 与

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
uni-app快速上手
uni-app快速上手

共0课时 | 0人学习

Vue 教程
Vue 教程

共42课时 | 17.2万人学习

Vue3.x 工具篇--十天技能课堂
Vue3.x 工具篇--十天技能课堂

共26课时 | 2.5万人学习