diff --git a/packages/runtime-core/src/components/KeepAlive.ts b/packages/runtime-core/src/components/KeepAlive.ts index d5813f90e09..30bbd0de748 100644 --- a/packages/runtime-core/src/components/KeepAlive.ts +++ b/packages/runtime-core/src/components/KeepAlive.ts @@ -186,7 +186,7 @@ const KeepAliveImpl: ComponentOptions = { function pruneCache(filter?: (name: string) => boolean) { cache.forEach((vnode, key) => { const name = getComponentName(vnode.type as ConcreteComponent) - if (name && (!filter || !filter(name))) { + if (name && (!filter || !filter(name) || !filter(key as string))) { pruneCacheEntry(key) } })