Vue生命周期在Keep-alive下有什么变化?掌握组件缓存后的逻辑

轻磊君_9984

轻磊君_9984

2026-05-25

265人浏览

原创

使组件复用而非销毁重建,首次走完整生命周期,后续仅触发activated(激活时)和deactivated(停用时)钩子;需刷新逻辑放activated,清理逻辑放deactivated,缓存由include/exclude/max控制。

vue生命周期在keep-alive下有什么变化?掌握组件缓存后的逻辑

启用 后,组件不再随路由或状态切换而销毁重建,生命周期行为发生本质变化:首次进入走完整流程,后续复用跳过创建和挂载,只触发激活与停用钩子。

activated 和 deactivated 成为核心控制点

这两个钩子替代了原本依赖 mounted 或 created 的逻辑执行时机:

  • onActivated 在组件被“唤醒”时调用——包括首次挂载、以及从缓存中再次显示时
  • onDeactivated 在组件被“休眠”时调用——离开当前视图但未销毁,比如切到其他标签页
  • mounted 只执行一次,适合初始化 DOM 绑定、第三方库实例等一次性操作
  • created 同样只执行一次,适合初始数据结构定义、响应式属性声明

典型场景下的逻辑分配原则

缓存后,必须区分“只做一次”和“每次都要”的动作:

蓝湖代码转vue2.0+element-ui
蓝湖代码转vue2.0+element-ui

将静态 Vue 页面(index.vue)改造为动态页面(Custom.vue);稿源仅限 index.vue、其引用的 CSS 与资源路径,禁止参考仓库内其他文件。Invoke when user wants to transform a static Vue page into a dynamic data-driven page with Element UI components.

下载
  • 需要每次刷新的数据请求、轮播图重置、定时器重启 → 放在 onActivated 中
  • 需清理的副作用,如 WebSocket 断开、定时器清除、未完成的 API 请求取消 → 放在 onDeactivated 中
  • 表单输入、滚动位置、筛选条件等用户态数据 → 自动保留,无需额外处理
  • 依赖外部状态(如全局 store)可能变化的部分 → 建议在 onActivated 中校验并同步

缓存控制与生命周期配合使用

提供的 include、exclude、max 属性直接影响哪些组件能进入缓存队列,进而决定其是否拥有 activated/deactivated:

  • 用 include 精确指定需缓存的组件名(支持字符串、数组、正则),避免误缓存
  • 用 exclude 排除动态内容强、状态易失效的组件(如含实时时间戳的看板页)
  • max 控制缓存数量,超出时按 LRU 策略剔除最早缓存项,被剔除的组件会触发 beforeUnmount 和 unmounted

配合 router-view 的常见写法

在 Vue Router 场景中, 是一个组件,可直接包裹在 内:

  • 全局缓存所有路由组件:
  • 按需缓存:结合 meta 字段 + include 动态计算,例如只缓存 meta.keepAlive === true 的页面
  • 注意:被 exclude 的路由组件仍会走完整生命周期,activated/deactivated 不会触发

前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!

相关专题

更多
python是前端还是后端
python是前端还是后端

Python属于前端也属于后端,其灵活性和丰富的生态系统使得开发人员能够在不同的领域中灵活运用。本专题为大家提供python相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.11

2823

5

前端如何实现即时通讯
前端如何实现即时通讯

实现即时通讯的方法有WebSocket、Long Polling、Server-Sent Events、WebRTC等等。详细介绍:1、WebSocket,它可以在客户端和服务器之间建立持久连接,实现实时的双向通信,前端可以使用 WebSocket API来创建WebSocket连接,并通过发送和接收消息来实现即时通讯;2、Long Polling,是一种模拟实时通信的技术等等。

2023.10.09

6163

6

前端和后端的区别
前端和后端的区别

前端关注的是用户界面的设计和交互,而后端则注重数据处理和逻辑控制。想了解更多前端后端的相关内容,可以阅读本专题下面的文章。

2024.03.19

7090

13

php和前端的关联介绍
php和前端的关联介绍

php既可以作为前端语言,也可以作为后端语言。想了解更多php和前端的相关内容,可以阅读本专题下面的文章。

2024.03.22

6898

10

前端外包工作内容有哪些
前端外包工作内容有哪些

前端外包工作内容包括:1. 网站和应用程序开发;2. 用户界面和交互设计;3. 用户体验优化;4. 设计和视觉开发;5. 跨浏览器兼容性;6. 性能优化;7. 维护和更新;8. 项目管理和沟通。想了解更多前端的相关内容,可以阅读本专题下面的文章。

2024.05.22

983

5

vuex是什么
vuex是什么

Vuex是一个用于Vue.js应用程序的状态管理模式,提供了一种结构化的方式来组织和管理应用程序的状态,使得数据的获取和修改更加简单和可靠。本专题为大家提供vuex相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.11

935

5

vue2.0和3.0区别
vue2.0和3.0区别

vue2.0和3.0区别:vue2的响应式原理是利⽤“Object.defineProperty()”对数据进⾏劫持结合发布订阅模式的⽅式来实现,vue3中使⽤了es6的proxy API对数据代理,实现对数据的监控。本专题为大家提供vue2.0和3.0区别的相关的文章、下载、课程内容,供大家免费下载体验。

2023.07.17

1734

5

vue3的生命周期有哪些
vue3的生命周期有哪些

vue3的生命周期:1、beforecreate;2、created;3、beforemount;4、mounted;5、beforeupdate;6、updated;7、beforedestroy;8、destroyed;9、activated;10、deactivated等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.02.23

12462

5

Vue3组合式API与组件开发实战
Vue3组合式API与组件开发实战

本专题讲解 Vue 3 组合式 API 的核心概念与应用技巧,深入分析响应式系统、生命周期管理、组件设计与复用策略。通过完整项目案例,指导前端开发者实现高性能、结构清晰的 Vue 应用,提升开发效率与代码可维护性。

2026.02.10

336

23

热门下载

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

精品课程

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

共0课时 | 0人学习

Vue 教程
Vue 教程

共42课时 | 17.4万人学习

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

共26课时 | 2.6万人学习