]> git.ipfire.org Git - thirdparty/vuejs/core.git/commitdiff
chore: update
authordaiwei <daiwei521@126.com>
Mon, 29 Sep 2025 08:40:13 +0000 (16:40 +0800)
committerdaiwei <daiwei521@126.com>
Mon, 29 Sep 2025 09:00:52 +0000 (17:00 +0800)
packages/runtime-vapor/src/component.ts

index d7e9fc5abeccff1d830e5d2b6b0a289daee37373..3828d7119c71176711e1aab0423a13a32931a1c6 100644 (file)
@@ -41,7 +41,13 @@ import {
   setActiveSub,
   unref,
 } from '@vue/reactivity'
-import { EMPTY_OBJ, invokeArrayFns, isFunction, isString } from '@vue/shared'
+import {
+  EMPTY_OBJ,
+  invokeArrayFns,
+  isArray,
+  isFunction,
+  isString,
+} from '@vue/shared'
 import {
   type DynamicPropsSource,
   type RawProps,
@@ -617,8 +623,19 @@ export function mountComponent(
     startMeasure(instance, `mount`)
   }
   if (instance.bm) invokeArrayFns(instance.bm)
-  insert(instance.block, parent, anchor)
-  if (!isHydrating) setComponentScopeId(instance)
+  const block = instance.block
+  if (isHydrating) {
+    if (
+      !(block instanceof Node) ||
+      (isArray(block) && block.some(b => !(b instanceof Node)))
+    ) {
+      insert(block, parent, anchor)
+    }
+  } else {
+    insert(block, parent, anchor)
+    setComponentScopeId(instance)
+  }
+
   if (instance.m) queuePostFlushCb(() => invokeArrayFns(instance.m!))
   instance.isMounted = true
   if (__DEV__) {