1、用KeepAlive缓存路由对应组件
<RouterView v-slot="{ Component }">
<!-- 缓存指定路由 -->
<KeepAlive include="home">
<component :is="Component"></component>
</KeepAlive>
</RouterView>
ps:
①可通过include缓存指定的路由组件,具体规则可参阅官方文档:KeepAlive
②“home”是组件的name,不是router里配置的路由name
③这里缓存的是当前路由对应的组件,如缓存home页面,缓存的是:
2、定义组件名称
要实现缓存指定的路由页面,就需要为页面对应的组件定义名称,如上面需要指定缓存home页面,就需要将页面对应的组件名称定义为“home”。
vue3组件名称定义有多种方式可以实现:
①默认方式:在 3.2.34 或以上的版本中,使用 setup 的单文件组件会自动根据文件名生成对应的 name 选项,无需再手动声明。
②安装插件: unplugin-vue-setup-extend-plus,使用该插件可以直接在script标签使用name字段命名,如:
<script setup name="home" lang="ts">
③官方原生API:defineOptions,无需插件,Vue3.3版本后原生支持
<script setup>
defineOptions({
name: 'home'
})
</script>