From: daiwei Date: Wed, 19 Mar 2025 00:40:55 +0000 (+0800) Subject: chore: update X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9c6e49f9836d07435ecd6d36e6e11ec588695a6a;p=thirdparty%2Fvuejs%2Fcore.git chore: update --- diff --git a/packages/runtime-vapor/src/apiDefineAsyncComponent.ts b/packages/runtime-vapor/src/apiDefineAsyncComponent.ts index 1a97731cb0..ddd91c06c8 100644 --- a/packages/runtime-vapor/src/apiDefineAsyncComponent.ts +++ b/packages/runtime-vapor/src/apiDefineAsyncComponent.ts @@ -94,16 +94,16 @@ export function defineVaporAsyncComponent( renderEffect(() => { resolvedComp = getResolvedComp() - let blockFn + let render if (loaded.value && resolvedComp) { - blockFn = () => createInnerComp(resolvedComp!, instance, frag) + render = () => createInnerComp(resolvedComp!, instance, frag) } else if (error.value && errorComponent) { - blockFn = () => + render = () => createComponent(errorComponent, { error: () => error.value }) } else if (loadingComponent && !delayed.value) { - blockFn = () => createComponent(loadingComponent) + render = () => createComponent(loadingComponent) } - frag.update(blockFn) + frag.update(render) }) return frag @@ -117,14 +117,21 @@ function createInnerComp( frag?: DynamicFragment, ): VaporComponentInstance { const { rawProps, rawSlots, isSingleRoot, appContext } = parent - const i = createComponent(comp, rawProps, rawSlots, isSingleRoot, appContext) + const instance = createComponent( + comp, + rawProps, + rawSlots, + isSingleRoot, + appContext, + ) + // set ref - frag && frag.setRef && frag.setRef(i) + frag && frag.setRef && frag.setRef(instance) // TODO custom element // pass the custom element callback on to the inner comp // and remove it from the async wrapper // i.ce = ce // delete parent.ce - return i + return instance } diff --git a/packages/runtime-vapor/src/apiTemplateRef.ts b/packages/runtime-vapor/src/apiTemplateRef.ts index e5a58537a9..1ec0d65ef1 100644 --- a/packages/runtime-vapor/src/apiTemplateRef.ts +++ b/packages/runtime-vapor/src/apiTemplateRef.ts @@ -56,7 +56,7 @@ export function setRef( const frag = i.block as DynamicFragment // async component not resolved yet if (!i.type.__asyncResolved) { - frag.setRef = n => setRef(instance, n, ref, oldRef, refFor) + frag.setRef = i => setRef(instance, i, ref, oldRef, refFor) return } diff --git a/packages/runtime-vapor/src/block.ts b/packages/runtime-vapor/src/block.ts index a0bdcd9465..ca2b97a068 100644 --- a/packages/runtime-vapor/src/block.ts +++ b/packages/runtime-vapor/src/block.ts @@ -8,7 +8,6 @@ import { import { createComment, createTextNode } from './dom/node' import { EffectScope, pauseTracking, resetTracking } from '@vue/reactivity' import { isHydrating } from './dom/hydration' -import type { RefEl } from './apiTemplateRef' export type Block = | Node @@ -24,7 +23,7 @@ export class VaporFragment { anchor?: Node insert?: (parent: ParentNode, anchor: Node | null) => void remove?: (parent?: ParentNode) => void - setRef?: (el: RefEl) => void + setRef?: (comp: VaporComponentInstance) => void constructor(nodes: Block) { this.nodes = nodes