Parcourir la source

perf: avoid parentNode call when dynamic child is not a Fragment

Evan You il y a 6 ans
Parent
commit
1b06b3c424
1 fichiers modifiés avec 5 ajouts et 1 suppressions
  1. 5 1
      packages/runtime-core/src/createRenderer.ts

+ 5 - 1
packages/runtime-core/src/createRenderer.ts

@@ -503,7 +503,11 @@ export function createRenderer<
         patch(
           oldVNode,
           dynamicChildren[i],
-          hostParentNode(oldVNode.el!)!,
+          // in the case of a Fragment, we need to provide the actual parent
+          // of the Fragment itself so it can move its children. In other cases,
+          // the parent container is not actually used so we just pass the
+          // block element here to avoid a DOM parentNode call.
+          oldVNode.type === Fragment ? hostParentNode(oldVNode.el!)! : el,
           null,
           parentComponent,
           parentSuspense,