} from './component'
import { createComment, createTextNode } from './dom/node'
import { EffectScope, pauseTracking, resetTracking } from '@vue/reactivity'
-import { isHydrating } from './dom/hydration'
+import {
+ currentHydrationNode,
+ isComment,
+ isHydrating,
+ locateHydrationNode,
+ locateVaporFragmentAnchor,
+} from './dom/hydration'
+ import { queuePostFlushCb } from '@vue/runtime-dom'
export type Block =
| Node
internals.umt(vnode.component!, null, !!parentNode)
}
+ vnode.scopeId = parentInstance.type.__scopeId!
+
frag.insert = (parentNode, anchor) => {
- if (!isMounted) {
- internals.mt(
- vnode,
- parentNode,
- anchor,
- parentInstance as any,
- null,
- undefined,
- false,
- )
+ if (!isMounted || isHydrating) {
+ if (isHydrating) {
+ ;(
+ vdomHydrateNode ||
+ (vdomHydrateNode = ensureHydrationRenderer().hydrateNode!)
+ )(
+ currentHydrationNode!,
+ vnode,
+ parentInstance as any,
+ null,
+ null,
+ false,
+ )
+ } else {
+ internals.mt(
+ vnode,
+ parentNode,
+ anchor,
+ parentInstance as any,
+ null,
+ undefined,
+ false,
+ )
+ }
onScopeDispose(unmount, true)
isMounted = true
} else {