HTML - A função mount/3 é chamada, fazendo as atribuições necessárias a um socket - Logo após as atribuições ao socket, a função render/1 é chamada para que o conteúdo seja enviado como resposta - Garante que, mesmo que o JavaScript do navegador esteja desabilitado, seja possível renderizar conteúdo ao usuário CICLO DE VIDA
o servidor se conectam via WebSockets - Essa conexão garante transmissão de dados de forma mais rápida que uma request HTTP comum - Depois de ambas as pontas estarem conectadas, sempre que o socket ser alterado no backend, o conteúdo renderizado no navegador é atualizado, sem a necessidade de escrever um pingo de JavaScript - A conexão via WebSockets também permite emitir eventos do navegador para o backend através de bindings CICLO DE VIDA
atualizações no socket e, consequentemente, atualizando seu conteúdo no navegador - Sempre que um socket é atualizado, a função de render/1 é novamente chamada para criar o conteúdo com os novos valores do socket - O processo é inteligente o suficiente para enviar apenas o conteúdo atualizado para o navegador, e apenas ele é atualizado na tela - Uma LiveView é eterna - até que a conexão seja desconectada ou haja um crash no processo CICLO DE VIDA
de interações com os usuários que sejam escritas em Elixir podem (devem) usar LiveView - A vida é muito boa escrevendo o mínimo de JavaScript QUANDO USAR
podem existir em apenas uma ponta da aplicação - Produtividade - não há mudança de contexto entre linguagens - O privilégio de não precisar esquentar a cabeça com webpack, babel e jest - Tooling? Pfff. In Valim We Trust. BENEFÍCIOS
estética - transições CSS, atualizações de classes e estilos no geral - Quando a aplicação não é escrita em Elixir - Quando você não gosta de coisas simples e não quer ser feliz no dia-a-dia QUANDO NÃO USAR