From: daiwei Date: Mon, 29 Sep 2025 04:01:43 +0000 (+0800) Subject: perf: optimize hydration node management in createFor X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=3fc644e22a54dcef720e4ee50b383c856b4ba36d;p=thirdparty%2Fvuejs%2Fcore.git perf: optimize hydration node management in createFor --- diff --git a/packages/runtime-vapor/src/apiCreateFor.ts b/packages/runtime-vapor/src/apiCreateFor.ts index 52a23e9fa8..51b563d97f 100644 --- a/packages/runtime-vapor/src/apiCreateFor.ts +++ b/packages/runtime-vapor/src/apiCreateFor.ts @@ -131,20 +131,17 @@ export const createFor = ( if (!isMounted) { isMounted = true + let prevNodes: Block for (let i = 0; i < newLength; i++) { if (isHydrating && isComponent && i > 0) { - setCurrentHydrationNode( - findLastChild(newBlocks[i - 1].nodes)!.nextSibling, - ) + setCurrentHydrationNode(findLastChild(prevNodes!)!.nextSibling) } - mount(source, i) + prevNodes = mount(source, i).nodes } if (isHydrating) { if (isComponent) { - setCurrentHydrationNode( - findLastChild(newBlocks[newLength - 1].nodes)!.nextSibling, - ) + setCurrentHydrationNode(findLastChild(prevNodes!)!.nextSibling) } parentAnchor = newLength === 0