diff --git a/packages/runtime-core/src/components/KeepAlive.ts b/packages/runtime-core/src/components/KeepAlive.ts index 3fec48140fc..3bfef7bf9bf 100644 --- a/packages/runtime-core/src/components/KeepAlive.ts +++ b/packages/runtime-core/src/components/KeepAlive.ts @@ -31,6 +31,7 @@ import { invokeArrayFns } from '@vue/shared' import { watch } from '../apiWatch' +import { hmrDirtyComponents } from '../hmr' import { RendererInternals, queuePostRenderEffect, @@ -280,7 +281,9 @@ const KeepAliveImpl: ComponentOptions = { if ( (include && (!name || !matches(include, name))) || - (exclude && name && matches(exclude, name)) + (exclude && name && matches(exclude, name)) || + (__DEV__ && hmrDirtyComponents.has(comp)) + ) { current = vnode return rawVNode