component: ComponentInternalInstance,
transition: TransitionHooks,
): void
- hydrate(node: Node, fn: () => void): Node
+ hydrate(
+ vnode: VNode,
+ node: any,
+ container: any,
+ anchor: any,
+ parentComponent: ComponentInternalInstance | null,
+ ): Node
hydrateSlot(vnode: VNode, node: any): Node
vdomMount: (
// hydrate vapor component
if ((vnode.type as ConcreteComponent).__vapor) {
- const vaporInterface = getVaporInterface(parentComponent, vnode)
- nextNode = vaporInterface.hydrate(node, () => {
- vaporInterface.mount(vnode, container, null, parentComponent)
- })
+ nextNode = getVaporInterface(parentComponent, vnode).hydrate(
+ vnode,
+ node,
+ container,
+ null,
+ parentComponent,
+ )
} else {
mountComponent(
vnode,
import { type RawProps, rawPropsProxyHandlers } from './componentProps'
import type { RawSlots, VaporSlot } from './componentSlots'
import { renderEffect } from './renderEffect'
-import { __next, createTextNode } from './dom/node'
+import { _next, createTextNode } from './dom/node'
import { optimizePropertyLookup } from './dom/prop'
import { setTransitionHooks as setVaporTransitionHooks } from './components/Transition'
import {
'vdomMount' | 'vdomUnmount' | 'vdomSlot'
> = {
mount(vnode, container, anchor, parentComponent) {
- const selfAnchor = (vnode.el = vnode.anchor = createTextNode())
- container.insertBefore(selfAnchor, anchor)
+ let selfAnchor: Node | null = null
+ if (!isHydrating) {
+ selfAnchor = vnode.el = vnode.anchor = createTextNode()
+ container.insertBefore(selfAnchor, anchor)
+ }
const prev = currentInstance
simpleSetCurrentInstance(parentComponent)
setVaporTransitionHooks(component as any, hooks as VaporTransitionHooks)
},
- hydrate(node, fn) {
- vaporHydrateNode(node, fn)
- return __next(node)
+ hydrate(vnode, node, container, anchor, parentComponent) {
+ vaporHydrateNode(node, () => {
+ this.mount(vnode, container, anchor, parentComponent)
+ })
+ return _next(node)
},
+
hydrateSlot(vnode, node) {
const { slot } = vnode.vs!
const propsRef = (vnode.vs!.ref = shallowRef(vnode.props))
'slot',
)
})
- return __next(node)
+ return _next(node)
},
}