fix: 【framework】关闭 TagsView 标签后 keep-alive 缓存未收缩,导致 DOM/JS heap 不回收

delView/delAllViews 误用 delCachedView,关闭非当前标签时会去删 currentRoute
对应的缓存,把要关的 name 留在 cachedViews 里,keep-alive include 不收缩,
旧组件实例无法 unmount。

回退到基于剩余 visitedViews 重建 cachedViews 的实现(对应 5718c7881 之前的写法);
delCachedView 自身保留 issue #180 的修复,仍供 refreshPage 使用。
feat/mes^2
YunaiV 2026-05-03 00:28:27 +08:00
parent 0cc2bff0f4
commit fa9facfa0b
1 changed files with 2 additions and 2 deletions

View File

@ -78,7 +78,7 @@ export const useTagsViewStore = defineStore('tagsView', {
// 删除某个
delView(view: RouteLocationNormalizedLoaded) {
this.delVisitedView(view)
this.delCachedView()
this.addCachedView()
},
// 删除tag
delVisitedView(view: RouteLocationNormalizedLoaded) {
@ -106,7 +106,7 @@ export const useTagsViewStore = defineStore('tagsView', {
// 删除所有缓存和tag
delAllViews() {
this.delAllVisitedViews()
this.delCachedView()
this.addCachedView()
},
// 删除所有tag
delAllVisitedViews() {