]> git.ipfire.org Git - thirdparty/vuejs/core.git/commitdiff
chore: Merge branch 'vapor' into edison/fix/setRefVdomInterop
authordaiwei <daiwei521@126.com>
Fri, 20 Jun 2025 06:33:12 +0000 (14:33 +0800)
committerdaiwei <daiwei521@126.com>
Fri, 20 Jun 2025 06:33:12 +0000 (14:33 +0800)
1  2 
packages/compiler-vapor/__tests__/transforms/__snapshots__/transformTemplateRef.spec.ts.snap
packages/compiler-vapor/__tests__/transforms/transformTemplateRef.spec.ts
packages/runtime-core/src/index.ts
packages/runtime-vapor/__tests__/dom/templateRef.spec.ts
packages/runtime-vapor/src/apiTemplateRef.ts
packages/runtime-vapor/src/vdomInterop.ts

index e30bd5abc1a0704376581289f0341407f9e7aaf3,1ed6f21df7769a695a0643a6c27c38eaeaf30eef..9eb6d228fb1a767f814b61aa9710bf27227cb0b2
@@@ -557,11 -557,7 +557,15 @@@ export { startMeasure, endMeasure } fro
   * @internal
   */
  export { initFeatureFlags } from './featureFlags'
 +/**
 + * @internal
 + */
 +export { setRef } from './rendererTemplateRef'
 +/**
 + * @internal
 + */
 +export { type VNodeNormalizedRef, normalizeRef } from './vnode'
+ /**
+  * @internal
+  */
+ export { createInternalObject } from './internalObject'
index 1073389b974d25acc8e1c3b781c0504ca049b5f8,f1ce23ac156b5ceddd4238063c14245c8057892e..1695a2e402ca04395af537d919c4d6382939b274
@@@ -5,7 -7,7 +7,8 @@@ import 
    createIf,
    createSlot,
    createTemplateRefSetter,
+   defineVaporComponent,
 +  delegateEvents,
    insert,
    renderEffect,
    template,
index 5c2e6ca0205f9f4c6678feab97f0d62f356a7d45,d3f3cf71819622c7b7ec988d548f5475ee2c754b..a43261cbfcd13585fbd39dc26a096ba6c1f27e54
@@@ -20,12 -20,9 +20,12 @@@ import 
    isString,
    remove,
  } from '@vue/shared'
- import { isFragment } from './block'
 -import { DynamicFragment } from './block'
++import { DynamicFragment, isFragment } from './block'
  
 -export type NodeRef = string | Ref | ((ref: Element) => void)
 +export type NodeRef =
 +  | string
 +  | Ref
 +  | ((ref: Element | VaporComponentInstance, refs: Record<string, any>) => void)
  export type RefEl = Element | VaporComponentInstance
  
  export type setRefFn = (
@@@ -53,14 -49,8 +53,14 @@@ export function setRef
  ): NodeRef | undefined {
    if (!instance || instance.isUnmounted) return
  
 +  // vdom interop
 +  if (isFragment(el) && el.setRef) {
 +    el.setRef(instance, ref, refFor, refKey)
 +    return
 +  }
 +
    const setupState: any = __DEV__ ? instance.setupState || {} : null
-   const refValue = isVaporComponent(el) ? getExposed(el) || el : el
+   const refValue = getRefValue(el)
  
    const refs =
      instance.refs === EMPTY_OBJ ? (instance.refs = {}) : instance.refs
index 38e29b215ac1c287bcd7301fd675378229e1ac8a,b916a2c8ebb0106b1d7542db2a83c17005c2649e..02409df68653a18d1e1702cd50fb185e7f049d3e
@@@ -8,12 -8,12 +8,14 @@@ import 
    type ShallowRef,
    type Slots,
    type VNode,
 +  type VNodeNormalizedRef,
    type VaporInteropInterface,
+   createInternalObject,
    createVNode,
    currentInstance,
    ensureRenderer,
+   isEmitListener,
 +  normalizeRef,
    onScopeDispose,
    renderSlot,
    shallowRef,