diff --git a/packages/server-renderer/src/helpers/ssrRenderSlot.ts b/packages/server-renderer/src/helpers/ssrRenderSlot.ts index 5a94faeafbf..06c2d7bfa97 100644 --- a/packages/server-renderer/src/helpers/ssrRenderSlot.ts +++ b/packages/server-renderer/src/helpers/ssrRenderSlot.ts @@ -62,9 +62,19 @@ export function ssrRenderSlotInner( parentComponent, slotScopeId ? ' ' + slotScopeId : '', ) - if (isArray(ret) && ensureValidVNode(ret)) { - // normal slot - renderVNodeChildren(push, ret, parentComponent, slotScopeId) + if (isArray(ret)) { + const validSlotContent = ensureValidVNode(ret) + if (validSlotContent) { + // normal slot + renderVNodeChildren( + push, + validSlotContent, + parentComponent, + slotScopeId, + ) + } else if (fallbackRenderFn) { + fallbackRenderFn() + } } else { // ssr slot. // check if the slot renders all comments, in which case use the fallback