vue3-core/packages/runtime-vapor/src/hmr.ts

22 lines
690 B
TypeScript
Raw Normal View History

2024-12-08 17:20:34 +08:00
import {
popWarningContext,
pushWarningContext,
setCurrentInstance,
} from '@vue/runtime-core'
import { normalizeBlock } from './block'
import { type VaporComponentInstance, devRender } from './component'
import { insert, remove } from './dom/node'
export function hmrRerender(instance: VaporComponentInstance): void {
const normalized = normalizeBlock(instance.block)
const parent = normalized[0].parentNode!
const anchor = normalized[normalized.length - 1].nextSibling
remove(instance.block, parent)
const reset = setCurrentInstance(instance)
pushWarningContext(instance)
devRender(instance)
reset()
popWarningContext()
insert(instance.block, parent, anchor)
}