Segundo a documentação do próprio:
LiveView provides rich, real-time user experiences with server-rendered HTML.
LiveView provê uma experiência rica, em tempo real com HTML renderizado no servidor.
defmodule MyAppWeb.LiveViewPage do
use Phoenix.LiveView, :live_view
#...
end
O mount é executado duas vezes, uma no server rendering e outra quando a conexão via websocket é estabelecida.
def mount(params, session, socket) do
# generate new socket state
{:ok, socket}
end
def render(assigns) do
~L"""
<h1>Hello, world!</h1>
"""
end
def handle_event(event, values, socket) do
# generate new socket state
{:noreply, socket}
end
defmodule MyAppWeb.LiveViewPage do
use Phoenix.LiveView, :live_view
def mount(params, session, socket) do
# generate new socket state
{:ok, socket}
end
def render(assigns) do
# should return a liveview template
end
def handle_event(event, values, socket) do
# generate new socket state
{:noreply, socket}
end
end
Talk is cheap. Show me the code. - Torvalds, Linus.
Phoenix LiveView junto com o ecossistema Phoenix + Elixir nos propõe uma produtividade muito grande. Embora o nível de dinamismo não chegue ao de um SPA ele serve muito bem para tarefas do dia dia e pode até ser usado junto com bibliotecas como React, Angular, Vue etc…