# `LiveVue.SSR`
[🔗](https://github.com/Valian/live_vue/blob/v1.1.0/lib/live_vue/ssr.ex#L7)

A behaviour for rendering Vue components server-side.

To define a custom renderer, change the application config in `config.exs`:

    config :live_vue, ssr_module: MyCustomSSRModule

Exposes a telemetry span for each render under key `[:live_vue, :ssr]`

# `component_name`

```elixir
@type component_name() :: String.t()
```

# `props`

```elixir
@type props() :: %{optional(String.t() | atom()) =&gt; any()}
```

# `render_response`

```elixir
@type render_response() :: %{optional(String.t() | atom()) =&gt; any()}
```

A render response which should have shape

%{
  html: string,
  preloadLinks: string
}

# `slots`

```elixir
@type slots() :: %{optional(String.t() | atom()) =&gt; any()}
```

# `render`

```elixir
@callback render(component_name(), props(), slots()) :: render_response() | no_return()
```

# `render`

```elixir
@spec render(component_name(), props(), slots()) :: render_response() | no_return()
```

---

*Consult [api-reference.md](api-reference.md) for complete listing*
