From: daiwei Date: Mon, 1 Dec 2025 08:47:39 +0000 (+0800) Subject: refactor(runtime-vapor): pass vapor slot fallback directly to `renderSlot` X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=refs%2Fheads%2Fedison%2Frefactor%2Fslots;p=thirdparty%2Fvuejs%2Fcore.git refactor(runtime-vapor): pass vapor slot fallback directly to `renderSlot` --- diff --git a/packages/runtime-core/src/helpers/renderSlot.ts b/packages/runtime-core/src/helpers/renderSlot.ts index 3a9389a592..9bcbc3aa10 100644 --- a/packages/runtime-core/src/helpers/renderSlot.ts +++ b/packages/runtime-core/src/helpers/renderSlot.ts @@ -130,7 +130,7 @@ export function ensureValidVNode( : null } -export function ensureVaporSlotFallback( +function ensureVaporSlotFallback( vnodes: VNodeArrayChildren | null | undefined, fallback?: () => VNodeArrayChildren, ): void { diff --git a/packages/runtime-core/src/index.ts b/packages/runtime-core/src/index.ts index 58f6f40b9f..4cee02acb1 100644 --- a/packages/runtime-core/src/index.ts +++ b/packages/runtime-core/src/index.ts @@ -608,10 +608,6 @@ export { setRef } from './rendererTemplateRef' * @internal */ export { type VNodeNormalizedRef, normalizeRef } from './vnode' -/** - * @internal - */ -export { ensureVaporSlotFallback } from './helpers/renderSlot' /** * @internal */ diff --git a/packages/runtime-vapor/src/vdomInterop.ts b/packages/runtime-vapor/src/vdomInterop.ts index 7f051e064f..e408c78501 100644 --- a/packages/runtime-vapor/src/vdomInterop.ts +++ b/packages/runtime-vapor/src/vdomInterop.ts @@ -21,7 +21,6 @@ import { currentInstance, ensureHydrationRenderer, ensureRenderer, - ensureVaporSlotFallback, isEmitListener, isKeepAlive, isRef, @@ -464,12 +463,10 @@ function renderVDOMSlot( slotsRef.value, isFunction(name) ? name() : name, props, + fallback as any, ) let children = vnode.children as any[] - // handle forwarded vapor slot without its own fallback - // use the fallback provided by the slot outlet - ensureVaporSlotFallback(children, fallback as any) isValidSlot = children.length > 0 }