【vue】keep-alive 用法

作用:保留组件状态或避免重新渲染

<keep-alive> 包裹动态组件时,会缓存不活动的组件实例,而不是销毁它们。

 

目的:当在组件之间切换的时候,你有时会想保持这些组件的状态,以避免反复重渲染导致的性能问题。

 

当组件在 <keep-alive> 内被切换,它的 activated 和 deactivated 这两个生命周期钩子函数将会被对应执行。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vuekeep-alive 组件是用来缓存具有相同组件名称的组件的,例如在一个 Tab 页中不同的 Tab 相互切换时,当前 Tab 中的组件及其状态可以被 keep-alive 缓存,以避免在该 Tab 内重复加载组件和数据。 源码中实现了两个生命周期方法 activate() 和 deactivate() 来控制缓存中的组件的挂载和卸载。缓存中的组件通过 mount() 方法来挂载,并在 activated 钩子函数中调用 vnode 的 activated 钩子函数和组件的 activated 钩子函数。 当组件被激活(activated)时,keep-alive 会调用 activate() 方法,该方法会检查被缓存组件的缓存状态,并通过缓存对象的 updated 标志来决定组件是否需要重新挂载。如果需要重新挂载,则通过缓存对象的 vnode 函数重新渲染组件,并调用新组件的 mounted 和 activated 钩子函数。 当组件被停用(deactivated)时,keep-alive 会调用 deactivate() 方法,该方法会调用被缓存组件的 deactivated 钩子函数,并通过 VNode 的 tag 属性判断组件是否需要被销毁。如果不需要被销毁,则缓存对象会记录其销毁状态并保留其状态,下次使用时可以快速还原组件。如果需要被销毁,则通过调用缓存对象的 destroy() 方法来销毁组件并释放资源。 总之,Vue keep-alive 组件通过缓存组件的方式来提高应用程序的性能和用户体验,实现了快速切换和缓存组件的功能。它的核心在于更新缓存中的组件,并且在组件被激活和停用时触发生命周期函数来维护组件的状态。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值