3、Vue 3 - Vue Router 使用实录 : keep-alive 路由缓存

作者: 温新

图书: 【Vue 3 Vue Router 使用实录】

阅读: 32

时间: 2024-05-18 16:02:09

为什么要使用路由缓存?

假设:有 a 和 b 两个路由,当在 a 路由中的表单中输入信息后,切换到 b 路由后,在回到到 a 路由,此时 a 路由中输入的表单信息也没有了。

使用路由缓存可以保留信息。

使用 keep-alive 路由缓存

src/App.vue

<template>
  <div class="container text-center">
    <h3>Vue Router</h3>
    <RouterLink to="/">首页</RouterLink>
    <RouterLink to="/about">关于</RouterLink>

    <!-- 使用 keep-alive 缓存组件 -->
    <router-view v-slot="{ Component }">
      <keep-alive>
        <component :is="Component" />
      </keep-alive>
    </router-view>
  </div>
</template>

注意:keep-alive 的使用方法是固定的。router-view<transition>keep-alive。其中 transitionkeep-alive 必须通过v-slot API 在 router-view 中使用,如形式如下:

<!-- v-slot="{ Component }" 是固定的 -->
<router-view v-slot="{ Component }">
    <!-- 若没有使用动画,可以不使用 transition -->s
    <transition>
        <keep-alive>
            <!-- 组件切换,也是固定的 -->
        	<component :is="Component" />
        </keep-alive>
    </transition>
</router-view>
请登录后再评论