Vue中跟 keep-alive 有关的生命周期是哪些?
在开发 Vue 项目的时候,大部分组件是没必要多次渲染的,所以 Vue 提供了一个内置组件 keep-alive 来缓存组件内部状态,避免重新渲染,在开发 Vue 项目的时候。
生命周期函数:在被 keep-alive 包含的组件/路由中,会多出两个生命周期的钩子:activated 与 deactivated
-
activated
:在组件第一次渲染时会被调用,之后在每次缓存组件被激活时调用。 -
activated
调用时机: 第一次进入缓存路由/组件,在 mounted 后面,beforeRouteEnter 守卫传给 next 的回调函数之前调用,并且给因为组件被缓存了,再次进入缓存路由、组件时,不会触发这些钩子函数,beforeCreate、created、beforeMount、mounted 都不会触发 -
deactivated
:组件被停用(离开路由)时调用:deactivated 钩子调用时机:使用 keep-alive 就不会调用beforeDestroy(组件销毁前钩子函数)和 destroyed(组件销毁),因为组件没被销毁,被缓存起来了,这个钩子函数可以看作 beforeDestroy 的替代,如果你缓存了组件,要在组件销毁的的时候做一些事情,可以放在这个钩子函数里。组件内的离开当前路由钩子函数 beforeRouteLeave =>路由前置守卫 beforeEach =>全局后置钩子函数 afterEach => deactivated 离开缓存组件 => activated 进入缓存组件(如果你进入的也是缓存路由)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端