214 Star 3.3K Fork 1.3K

有来开源组织 / vue3-element-admin

 / 详情

tagsView同一个页面多开时,刷新其中一个页面后,其他页面也会被重新渲染,没有走缓存

待办的
创建于  
2024-01-10 18:15

1、tagsView同一个页面多开时(detail组件会被多次打开detail1、detail2...),
实现上述需求,我对addVisitedView进行了改造,改成了if (visitedViews.value.some((v) => v.fullPath === view.fullPath)) return;
2、然后当tagsView执行refreshSelectedTag的时候,所有的detail页面都被delCachedView了,当刷新完detail1之后,再从tagsView标签切换到其他detail页面时(detail2、detail3...)页面会被重新渲染
3、看了下代码,应该是detail组件被cachedViews了
<keep-alive :include="tagsViewStore.cachedViews"> <component :is="Component" :key="route.fullPath" /> </keep-alive>
4、怎么样才能实现刷新detail1时,对其他detail页面的缓存不造成影响?

评论 (2)

zhuchenglong 创建了任务
zhuchenglong 修改了描述
zhuchenglong 修改了描述
展开全部操作日志

有query的tag点击时会生成一个没有query的tag导致 整个query都消失。看了下是addView时query参数没有加。加了之后出现另一个问题,不同的query的同一路由 后面的会把前面的都替换成一样的。 看了下updateVisitedView的逻辑 会产生多个相同的tag.

修改了下 addVisitedView 把if (visitedViews.value.some((v) => v.fullPath === view.fullPath)) return; 改回了 if (visitedViews.value.some((v) => v.path === view.path)) return; 修复了此问题

登录 后才可以发表评论

状态
负责人
里程碑
Pull Requests
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
开始日期   -   截止日期
-
置顶选项
优先级
参与者(2)
TypeScript
1
https://gitee.com/youlaiorg/vue3-element-admin.git
git@gitee.com:youlaiorg/vue3-element-admin.git
youlaiorg
vue3-element-admin
vue3-element-admin

搜索帮助