]> git.ipfire.org Git - thirdparty/vuejs/core.git/commitdiff
chore: Merge branch 'vapor' into edison/feat/vaporAsyncComponent edison/feat/vaporAsyncComponent 13059/head
authordaiwei <daiwei521@126.com>
Fri, 20 Jun 2025 06:09:36 +0000 (14:09 +0800)
committerdaiwei <daiwei521@126.com>
Fri, 20 Jun 2025 06:09:36 +0000 (14:09 +0800)
1  2 
packages/runtime-core/src/index.ts
packages/runtime-vapor/src/apiTemplateRef.ts
packages/runtime-vapor/src/component.ts
packages/runtime-vapor/src/componentProps.ts

index 62677d732b8cde52062357d6d30d54a93eb8f026,1ed6f21df7769a695a0643a6c27c38eaeaf30eef..920e64eac6aa75f00c8034402163f8227416352f
@@@ -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'
index 1ec0d65ef100bdae35919b09260a9d03affd6e48,d3f3cf71819622c7b7ec988d548f5475ee2c754b..76a2d8c476694a7d3024c7fde2d3d199002b1cf4
@@@ -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