vue3中使用keepAlive缓存路由组件不生效的问题解决
|
问题出现原因
在中注册路由:- {
- path: '/template-allocation',
- name: 'TemplateAllocation',
- meta: { title: '风险任务详情', keepAlive: true },
- component: () =>
- import(
- '../views/template-allocation/index.vue'
- ),
- },
复制代码 在中使用缓存组件:- <router-view v-slot="{ Component }" v-if="isShow">
- <div class="child-view">
- <KeepAlive :include="['TemplateAllocation']">
- <component :is="Component"></component>
- </KeepAlive>
- </div>
- </router-view>
复制代码 最后发现并不生效,在大佬的帮助下,才找到原因:中使用的并不是注册的路由的!!!
而是组件本身的,记得在中的时候,中有个属性可以声明,但是在中的语法糖中,很少关注如何声明。
官网有这么一句话:
可是我自己在整理目录结构的时候,习惯将目录这样设置:- /template-allocation/index.vue
复制代码 ,这样就会导致自动生成的变成了!
就会导致的属性不生效了。
如何查找我们的组件名称呢?
这就要借助一个常用工具,如下:
从上图可以看到就是我们的组件名字了。中如何设置组件的名字呢?
官网提供了一个,可以这么设置:- defineOptions({
- name: 'TemplateAllocation'
- })
复制代码 从可以看到组件名字变成了,如下:
以上就是本次的分享内容了,又踩了一个小坑。奉上当初提问的地址。
到此这篇关于vue3中使用keepAlive缓存路由组件不生效的情况记录的文章就介绍到这了,更多相关vue keepAlive不生效内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
来源:https://www.jb51.net/javascript/323383ws5.htm
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作! |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
|
|
|
发表于 2024-7-5 22:46:55
举报
回复
分享
|
|
|
|