]> git.ipfire.org Git - thirdparty/vuejs/core.git/commitdiff
perf: optimize hydration node management in createFor
authordaiwei <daiwei521@126.com>
Mon, 29 Sep 2025 04:01:43 +0000 (12:01 +0800)
committerdaiwei <daiwei521@126.com>
Mon, 29 Sep 2025 04:01:43 +0000 (12:01 +0800)
packages/runtime-vapor/src/apiCreateFor.ts

index 52a23e9fa805c31a86ceebad0a575c3ac71c7730..51b563d97f05e32472798d2a478622cd224f0211 100644 (file)
@@ -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