# `LiveReact.SSR`
[🔗](https://github.com/mrdotb/live_react/blob/v2.0.0/lib/live_react/ssr.ex#L7)

A behaviour for rendering React components server-side.

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

    config :live_react, ssr_module: MyCustomSSRModule

Exposes a telemetry span for each render under key `[:live_react, :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,
}

# `slots`

```elixir
@type slots() :: %{optional(String.t()) =&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*
