Vue 中如何实现路由切换时缓存组件状态?
我在用 Vue3 + Vue Router 做一个后台管理系统,列表页点进去详情页再返回,列表的滚动位置和搜索条件都重置了,体验很差。听说可以用 keep-alive 缓存路由组件,但试了好像没生效?
我的路由结构大概是这样:
<template>
<router-view v-slot="{ Component }">
<keep-alive include="["UserList"]">
<component :is="Component" />
</keep-alive>
</router-view>
</template>
但 UserList 组件每次回来还是重新 created,name 也确认写了是 “UserList”,到底是哪里没配对?
然后router-view外面包keep-alive,直接用:
路由配置里加个meta:
这样比用include稳,我之前也被这坑过,Vue3的keep-alive有点玄学。