mirror of https://github.com/vuejs/core.git
feat(runtime-vapor): support HMR for setup
This commit is contained in:
parent
2696f14e1c
commit
f264ceb892
|
@ -182,6 +182,14 @@ export function createComponent(
|
|||
appContext,
|
||||
)
|
||||
|
||||
// HMR
|
||||
if (__DEV__ && component.__hmrId) {
|
||||
registerHMR(instance)
|
||||
instance.isSingleRoot = isSingleRoot
|
||||
instance.hmrRerender = hmrRerender.bind(null, instance)
|
||||
instance.hmrReload = hmrReload.bind(null, instance)
|
||||
}
|
||||
|
||||
if (__DEV__) {
|
||||
pushWarningContext(instance)
|
||||
startMeasure(instance, `init`)
|
||||
|
@ -221,14 +229,6 @@ export function createComponent(
|
|||
// TODO make the proxy warn non-existent property access during dev
|
||||
instance.setupState = proxyRefs(setupResult)
|
||||
devRender(instance)
|
||||
|
||||
// HMR
|
||||
if (component.__hmrId) {
|
||||
registerHMR(instance)
|
||||
instance.isSingleRoot = isSingleRoot
|
||||
instance.hmrRerender = hmrRerender.bind(null, instance)
|
||||
instance.hmrReload = hmrReload.bind(null, instance)
|
||||
}
|
||||
}
|
||||
} else {
|
||||
// component has a render function but no setup function
|
||||
|
@ -283,18 +283,33 @@ export let isApplyingFallthroughProps = false
|
|||
*/
|
||||
export function devRender(instance: VaporComponentInstance): void {
|
||||
instance.block =
|
||||
callWithErrorHandling(
|
||||
instance.type.render!,
|
||||
instance,
|
||||
ErrorCodes.RENDER_FUNCTION,
|
||||
[
|
||||
instance.setupState,
|
||||
instance.props,
|
||||
instance.emit,
|
||||
instance.attrs,
|
||||
instance.slots,
|
||||
],
|
||||
) || []
|
||||
(instance.type.render
|
||||
? callWithErrorHandling(
|
||||
instance.type.render,
|
||||
instance,
|
||||
ErrorCodes.RENDER_FUNCTION,
|
||||
[
|
||||
instance.setupState,
|
||||
instance.props,
|
||||
instance.emit,
|
||||
instance.attrs,
|
||||
instance.slots,
|
||||
],
|
||||
)
|
||||
: callWithErrorHandling(
|
||||
isFunction(instance.type) ? instance.type : instance.type.setup!,
|
||||
instance,
|
||||
ErrorCodes.SETUP_FUNCTION,
|
||||
[
|
||||
instance.props,
|
||||
{
|
||||
slots: instance.slots,
|
||||
attrs: instance.attrs,
|
||||
emit: instance.emit,
|
||||
expose: instance.expose,
|
||||
},
|
||||
],
|
||||
)) || []
|
||||
}
|
||||
|
||||
const emptyContext: GenericAppContext = {
|
||||
|
|
Loading…
Reference in New Issue