Vue3里单页面应用(SPA)参数路由多实例缓存冲突问题
posted @ 2022-09-08 13:48
Vue SPA页面会有单组件多实例的参数路由情况,比如现有用户信息如下
{
path: "/user/:uid",
name: "user",
component: () => import("@/views/**/user.vue"),
params: {uid: 1},
...
}
那么缓存路由组件可以写成以下形式
<template>
<router-view v-slot="{Component}">
<keep-alive :include="includeRoutes">
<component :is="Component" :key="$route.path"></component>
</keep-alive>
</router-view>
</template>
核心部分是component绑定key为$route.path
注意vue3和vue2的RouterView与KeepAlive组件嵌套关系是不一样的,如果不合适,控制台会有警告
注意路由组件要有名称
注意嵌套路由组件也要有名称
注:
- 在 3.2.34 或以上的版本中,使用
<script setup>
的单文件组件会自动根据文件名生成对应的 name 选项,无需再手动声明,参考
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律