From e0ac500b55d8b96d88ab8959aa3bca8cc13c2d4d Mon Sep 17 00:00:00 2001 From: edison Date: Thu, 20 Nov 2025 22:03:18 +0800 Subject: [PATCH] refactor(transition-group): directly returns slotted block instead of wrapping it in DynamicFragment. (#14122) --- packages/runtime-vapor/src/apiCreateFor.ts | 2 +- packages/runtime-vapor/src/components/TransitionGroup.ts | 8 ++------ 2 files changed, 3 insertions(+), 7 deletions(-) diff --git a/packages/runtime-vapor/src/apiCreateFor.ts b/packages/runtime-vapor/src/apiCreateFor.ts index f4a636d775..424e892c89 100644 --- a/packages/runtime-vapor/src/apiCreateFor.ts +++ b/packages/runtime-vapor/src/apiCreateFor.ts @@ -133,7 +133,7 @@ export const createFor = ( // trigger TransitionGroup update hooks const transitionHooks = frag.$transition - if (transitionHooks && transitionHooks.group) { + if (transitionHooks && transitionHooks.group && isMounted) { triggerTransitionGroupUpdate(transitionHooks) } diff --git a/packages/runtime-vapor/src/components/TransitionGroup.ts b/packages/runtime-vapor/src/components/TransitionGroup.ts index 48dab60321..af3b8abf75 100644 --- a/packages/runtime-vapor/src/components/TransitionGroup.ts +++ b/packages/runtime-vapor/src/components/TransitionGroup.ts @@ -36,7 +36,7 @@ import { import { isForBlock } from '../apiCreateFor' import { renderEffect } from '../renderEffect' import { createElement } from '../dom/node' -import { DynamicFragment, isFragment } from '../fragment' +import { isFragment } from '../fragment' const positionMap = new WeakMap() const newPositionMap = new WeakMap() @@ -160,11 +160,7 @@ export const VaporTransitionGroup: ObjectVaporComponent = decorate({ } return container } else { - const frag = __DEV__ - ? new DynamicFragment('transition-group') - : new DynamicFragment() - renderEffect(() => frag.update(() => slottedBlock)) - return frag + return slottedBlock } }, }) -- 2.47.3