diff options
author | 2021-12-02 10:30:15 -0600 | |
---|---|---|
committer | 2021-12-02 10:30:15 -0600 | |
commit | ac3e870280e983a7977da79b6eec0568d38d8420 (patch) | |
tree | 2c7c95af762f4dceef8abd5f5c17cdc6dce80367 /packages/renderers/renderer-vue | |
parent | 62a5e98c9008a1ac88c3c38db64b74723f8fd422 (diff) | |
download | astro-ac3e870280e983a7977da79b6eec0568d38d8420.tar.gz astro-ac3e870280e983a7977da79b6eec0568d38d8420.tar.zst astro-ac3e870280e983a7977da79b6eec0568d38d8420.zip |
fix: renderer behavior with no children (#2078)
* fix: renderer behavior with no children
* [ci] Prettier fix
* Force CI
* fix: properly handle falsy values
* [ci] Prettier fix
* chore: force ci
* [experiment] netlify ignore
Co-authored-by: GitHub Action <github-action@users.noreply.github.com>
Diffstat (limited to 'packages/renderers/renderer-vue')
-rw-r--r-- | packages/renderers/renderer-vue/client.js | 6 | ||||
-rw-r--r-- | packages/renderers/renderer-vue/server.js | 6 |
2 files changed, 10 insertions, 2 deletions
diff --git a/packages/renderers/renderer-vue/client.js b/packages/renderers/renderer-vue/client.js index dfbd48a30..edda137cd 100644 --- a/packages/renderers/renderer-vue/client.js +++ b/packages/renderers/renderer-vue/client.js @@ -5,6 +5,10 @@ export default (element) => (Component, props, children) => { delete props['class']; // Expose name on host component for Vue devtools const name = Component.name ? `${Component.name} Host` : undefined; - const app = createSSRApp({ name, render: () => h(Component, props, { default: () => h(StaticHtml, { value: children }) }) }); + const slots = {}; + if (children != null) { + slots.default = () => h(StaticHtml, { value: children }); + } + const app = createSSRApp({ name, render: () => h(Component, props, slots) }); app.mount(element, true); }; diff --git a/packages/renderers/renderer-vue/server.js b/packages/renderers/renderer-vue/server.js index b4254458d..83e389b5d 100644 --- a/packages/renderers/renderer-vue/server.js +++ b/packages/renderers/renderer-vue/server.js @@ -7,7 +7,11 @@ function check(Component) { } async function renderToStaticMarkup(Component, props, children) { - const app = createSSRApp({ render: () => h(Component, props, { default: () => h(StaticHtml, { value: children }) }) }); + const slots = {}; + if (children != null) { + slots.default = () => h(StaticHtml, { value: children }); + } + const app = createSSRApp({ render: () => h(Component, props, slots) }); const html = await renderToString(app); return { html }; } |