Vue keep-alive 缓存组件

发布于 2024-05-30 08:33:47 字数 1622 浏览 16 评论 0

有时候我们不希望组件被重新渲染影响使用体验;或者处于性能考虑,避免多次重复渲染降低性能。而是希望组件可以缓存下来,维持当前的状态。这时候就需要用到 keep-alive 组件。

使用 keep-alive 后组件的 生命周期的变化如下:

  1. 初次进入时:先 onMounted , 再 onActivated
  2. 退出后触发 onDeactivated
  3. 再次进入:只会触发 onActivated

因此,事件挂载的方法等 和 只执行一次的放在 onMounted 中;组件每次进去执行的方法放在 onActivated 中

<!-- 基本 -->
<keep-alive>
  <component :is="view"></component>
</keep-alive>
 
<!-- 多个条件判断的子组件 -->
<keep-alive>
  <comp-a v-if="a > 1"></comp-a>
  <comp-b v-else></comp-b>
</keep-alive>
 
<!-- 和 `<transition>` 一起使用 -->
<transition>
  <keep-alive>
    <component :is="view"></component>
  </keep-alive>
</transition>

includeexcludemax

  • include : 设置 keep-alive缓存哪些组件,可以用逗号分隔字符串、正则表达式或一个数组来表示
  • exclude : 设置 keep-alive不缓存哪些组件,可以用逗号分隔字符串、正则表达式或一个数组来表示
  • max : 设置 keep-alive 缓存组件的数量
<keep-alive :include="['A']" :exclude="" :max="5">
	<A></A>
  <B></B>
</keep-alive>
# 组件 A.vue
<script>
export default {
  name: 'A'
}
</script>

# 组件 B.vue
<script>
export default {
  name: 'B'
}
</script>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

踏雪无痕

暂无简介

0 文章
0 评论
23 人气
更多

推荐作者

内心激荡

文章 0 评论 0

JSmiles

文章 0 评论 0

左秋

文章 0 评论 0

迪街小绵羊

文章 0 评论 0

瞳孔里扚悲伤

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文