summaryrefslogtreecommitdiff
path: root/packages/integrations/vue/server.js
diff options
context:
space:
mode:
authorGravatar Florian Lefebvre <contact@florian-lefebvre.dev> 2024-10-03 20:52:11 +0200
committerGravatar GitHub <noreply@github.com> 2024-10-03 20:52:11 +0200
commitf9dd9428c6cd1c9d23488ea4645f186b4a4ad4b2 (patch)
treee727e0ad919b5e6ea81c2c9e897c35661bce0a41 /packages/integrations/vue/server.js
parent34d79527a4cd88864c4a9128a393c0d2f7d9eda7 (diff)
downloadastro-f9dd9428c6cd1c9d23488ea4645f186b4a4ad4b2.tar.gz
astro-f9dd9428c6cd1c9d23488ea4645f186b4a4ad4b2.tar.zst
astro-f9dd9428c6cd1c9d23488ea4645f186b4a4ad4b2.zip
fix(vue): useId() collisions (#12112)
Diffstat (limited to 'packages/integrations/vue/server.js')
-rw-r--r--packages/integrations/vue/server.js10
1 files changed, 9 insertions, 1 deletions
diff --git a/packages/integrations/vue/server.js b/packages/integrations/vue/server.js
index afdc9e8a2..5b7f6cb50 100644
--- a/packages/integrations/vue/server.js
+++ b/packages/integrations/vue/server.js
@@ -2,12 +2,19 @@ import { setup } from 'virtual:@astrojs/vue/app';
import { createSSRApp, h } from 'vue';
import { renderToString } from 'vue/server-renderer';
import StaticHtml from './static-html.js';
+import { incrementId } from './context.js';
function check(Component) {
return !!Component['ssrRender'] || !!Component['__ssrInlineRender'];
}
async function renderToStaticMarkup(Component, inputProps, slotted, metadata) {
+ let prefix;
+ if (this && this.result) {
+ prefix = incrementId(this.result);
+ }
+ const attrs = { prefix };
+
const slots = {};
const props = { ...inputProps };
delete props.slot;
@@ -21,9 +28,10 @@ async function renderToStaticMarkup(Component, inputProps, slotted, metadata) {
});
}
const app = createSSRApp({ render: () => h(Component, props, slots) });
+ app.config.idPrefix = prefix;
await setup(app);
const html = await renderToString(app);
- return { html };
+ return { html, attrs };
}
export default {