From a6e039865e12ea9bd1baa80c98167def9cba7d53 Mon Sep 17 00:00:00 2001 From: daiwei Date: Wed, 30 Jul 2025 18:23:07 +0800 Subject: [PATCH] fix: preserve current hydration node during slot insertion --- packages/runtime-vapor/src/component.ts | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/packages/runtime-vapor/src/component.ts b/packages/runtime-vapor/src/component.ts index a74f690b34..f8980f9ac0 100644 --- a/packages/runtime-vapor/src/component.ts +++ b/packages/runtime-vapor/src/component.ts @@ -568,12 +568,19 @@ export function createComponentWithFallback( } if (rawSlots) { - isHydrating && setCurrentHydrationNode(el.firstChild) + let prev: Node + if (isHydrating) { + prev = currentHydrationNode! + setCurrentHydrationNode(el.firstChild) + } if (rawSlots.$) { // TODO dynamic slot fragment } else { insert(getSlot(rawSlots as RawSlots, 'default')!(), el) } + if (isHydrating) { + setCurrentHydrationNode(prev!) + } } if (!isHydrating && _insertionParent) { -- 2.47.3