diff --git a/packages/server-renderer/__tests__/ssrDirectives.spec.ts b/packages/server-renderer/__tests__/ssrDirectives.spec.ts
index dfdebe971..f0a947f49 100644
--- a/packages/server-renderer/__tests__/ssrDirectives.spec.ts
+++ b/packages/server-renderer/__tests__/ssrDirectives.spec.ts
@@ -66,6 +66,38 @@ describe('ssr: directives', () => {
),
).toBe(`
`)
})
+
+ test('with component', async () => {
+ expect(
+ await renderToString(
+ createApp({
+ components: {
+ Foo: {
+ template: `
`,
+ },
+ },
+ data: () => ({ show: false }),
+ template: ``,
+ }),
+ ),
+ ).toBe(`
`)
+ })
+
+ test('with dynamic component', async () => {
+ expect(
+ await renderToString(
+ createApp({
+ components: {
+ Foo: {
+ template: `
`,
+ },
+ },
+ data: () => ({ show: false }),
+ template: ``,
+ }),
+ ),
+ ).toBe(`
`)
+ })
})
describe('template v-model', () => {
diff --git a/packages/server-renderer/src/helpers/ssrRenderComponent.ts b/packages/server-renderer/src/helpers/ssrRenderComponent.ts
index 4277bb174..94ec2d50f 100644
--- a/packages/server-renderer/src/helpers/ssrRenderComponent.ts
+++ b/packages/server-renderer/src/helpers/ssrRenderComponent.ts
@@ -13,10 +13,12 @@ export function ssrRenderComponent(
children: Slots | SSRSlots | null = null,
parentComponent: ComponentInternalInstance | null = null,
slotScopeId?: string,
+ vShowValue?: Props,
): SSRBuffer | Promise {
return renderComponentVNode(
createVNode(comp, props, children),
parentComponent,
slotScopeId,
+ vShowValue,
)
}
diff --git a/packages/server-renderer/src/render.ts b/packages/server-renderer/src/render.ts
index e34072e24..af95a2fbc 100644
--- a/packages/server-renderer/src/render.ts
+++ b/packages/server-renderer/src/render.ts
@@ -92,7 +92,7 @@ export function renderComponentVNode(
vnode: VNode,
parentComponent: ComponentInternalInstance | null = null,
slotScopeId?: string,
- vShowValue?: Props | null,
+ vShowValue?: Props,
): SSRBuffer | Promise {
const instance = (vnode.component = createComponentInstance(
vnode,
@@ -128,7 +128,7 @@ export function renderComponentVNode(
function renderComponentSubTree(
instance: ComponentInternalInstance,
slotScopeId?: string,
- vShowValue?: Props | null,
+ vShowValue?: Props,
): SSRBuffer | Promise {
if (__DEV__) pushWarningContext(instance.vnode)
const comp = instance.type as Component
@@ -235,7 +235,7 @@ export function renderVNode(
vnode: VNode,
parentComponent: ComponentInternalInstance,
slotScopeId?: string,
- vShowValue?: Props | null,
+ vShowValue?: Props,
): void {
const { type, shapeFlag, children, dirs, props } = vnode
if (dirs) {