From: daiwei Date: Fri, 20 Jun 2025 06:09:36 +0000 (+0800) Subject: chore: Merge branch 'vapor' into edison/feat/vaporAsyncComponent X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=refs%2Fpull%2F13059%2Fhead;p=thirdparty%2Fvuejs%2Fcore.git chore: Merge branch 'vapor' into edison/feat/vaporAsyncComponent --- 637b3cb9b3838cda1d2eecf77c4932ee4abd8300 diff --cc packages/runtime-core/src/index.ts index 62677d732b,1ed6f21df7..920e64eac6 --- a/packages/runtime-core/src/index.ts +++ b/packages/runtime-core/src/index.ts @@@ -557,15 -557,7 +557,19 @@@ export { startMeasure, endMeasure } fro * @internal */ export { initFeatureFlags } from './featureFlags' +/** + * @internal + */ +export { + createAsyncComponentContext, + useAsyncComponentState, + isAsyncWrapper, +} from './apiAsyncComponent' +/** + * @internal + */ +export { markAsyncBoundary } from './helpers/useId' + /** + * @internal + */ + export { createInternalObject } from './internalObject' diff --cc packages/runtime-vapor/src/apiTemplateRef.ts index 1ec0d65ef1,d3f3cf7181..76a2d8c476 --- a/packages/runtime-vapor/src/apiTemplateRef.ts +++ b/packages/runtime-vapor/src/apiTemplateRef.ts @@@ -50,24 -49,8 +50,22 @@@ export function setRef ): NodeRef | undefined { if (!instance || instance.isUnmounted) return + const isVaporComp = isVaporComponent(el) + if (isVaporComp && isAsyncWrapper(el as VaporComponentInstance)) { + const i = el as VaporComponentInstance + const frag = i.block as DynamicFragment + // async component not resolved yet + if (!i.type.__asyncResolved) { + frag.setRef = i => setRef(instance, i, ref, oldRef, refFor) + return + } + + // set ref to the inner component instead + el = frag.nodes as VaporComponentInstance + } + const setupState: any = __DEV__ ? instance.setupState || {} : null - const refValue = isVaporComp - ? getExposed(el as VaporComponentInstance) || el - : el + const refValue = getRefValue(el) const refs = instance.refs === EMPTY_OBJ ? (instance.refs = {}) : instance.refs