#svelte_component

Renders a Svelte component in a Rails view.

Usage

<%= svelte_component 'HelloWorld', { title: 'Hello World' }, html: {}, options: {} %>

This requires ruby 3x! For older rubies see svelte_component_ruby2

Arguments

  • Component Path (1. Argument, String, required)
    • Path to component (without .svelte), relative to configured components_folder (e.g., path/to/MyComponent).
  • props (second Argument, Hash, optional)
    • Parsed to Svelte and available as $props there.
  • html (Hash, optional)
    • options for the HTML tag that wrapps the svelte-component
  • options (Hash, optional):
    • ssr (Boolean or :auto): Enables server-side rendering. :auto triggers SSR only on initial request (detected via configured header, e.g., X-Turbo-Request-ID for Turbo).
    • hydrate (Boolean): Enables client-side hydration.
    • debug (Boolean): Enables debug mode.

Behavior

  • SSR: Renders component server-side if ssr: true or :auto (on initial request).
  • Client-Side: Renders an empty tag for frontend build/hydration, managed by a Stimulus controller from the @csedl/svelte-on-rails npm package.

Copyright © 2025-2027 sedlmair.ch. Distributed by MIT license.