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) {