Pass slot HTML to Vue's innerHTML as a primitive string by matthewp · Pull Request #18413 · withastro/astro · GitHub
Skip to content

Pass slot HTML to Vue's innerHTML as a primitive string - #18413

Open
matthewp wants to merge 1 commit into
mainfrom
triage-18392
Open

matthewp wants to merge 1 commit into
mainfrom
triage-18392

Conversation

@matthewp

Copy link
Copy Markdown
Contributor

Changes

  • Fixes @astrojs/vue SSR concatenating slot HTML character-by-character when the slot content is large (e.g. an island): Astro hands slots to renderers as a String wrapper object, which Vue's streaming renderer treats as a nested buffer.
  • StaticHtml now converts slot content with String() before setting innerHTML, making Vue SSR render it as one string. Output markup is unchanged.

Testing

  • Adds test/units/static-html.test.ts verifying slot HTML is rendered as a single string.

Docs

  • No docs update needed — no user-facing behavior or markup change.

@changeset-bot

changeset-bot Bot commented Oct 16, 2026

Copy link
Copy Markdown

@github-actions github-actions Bot added pkg: vue Related to Vue (scope) pkg: integration Related to any renderer integration (scope) labels Oct 16, 2026

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

pkg: integration Related to any renderer integration (scope) pkg: vue Related to Vue (scope)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant