A combinação de LiveView e Svelte
- LiveView oferece uma maneira única de construir aplicações web.
- O servidor mantém o estado, processa o comportamento do frontend no backend e atualiza o DOM de forma incremental.
- A complexidade dos SPAs vem da complexidade dos sistemas distribuídos, e o LiveView oferece uma experiência rica no cliente sem microsserviços de frontend.
As dificuldades do LiveView
- O estado no lado do cliente é inevitável, e a latência entre servidor e usuário não pode ser evitada.
- O LiveView cuida de muitas mudanças no DOM no servidor, mas não consegue controlar tudo.
- O LiveView tem três tipos de componentes: LiveViews, LiveComponents e Components.
- Refatorar entre LiveView e LiveComponents é mais trabalhoso do que parece.
A direção ambígua do LiveView
- O LiveView frequentemente dá a sensação de que está faltando alguma coisa.
- O LiveView tem muito em comum com frameworks modernos de frontend, mas é preciso reconhecer as diferenças e abordar os problemas de outra forma.
LiveView + Svelte
- LiveSvelte permite renderizar componentes Svelte dentro do LiveView.
- O backend controla as props dos componentes de frontend, e tanto frontend quanto backend mantêm estado.
- Existe um canal de comunicação privado e bidirecional entre frontend e backend.
As características inovadoras do LiveSvelte
- A divisão de responsabilidades entre backend e frontend é clara, e a complexidade fica concentrada no lado do servidor.
- O LiveView brilha mais como frontend para o backend, fornecendo um processo de backend que renderiza componentes de frontend e mantém o estado.
A opinião do GN⁺
- A combinação de LiveView e Svelte separa de forma eficiente o gerenciamento de estado entre servidor e cliente, permitindo que desenvolvedores criem aplicações de forma mais rápida e intuitiva.
- Essa tecnologia pode ser especialmente útil para aplicações web em que a interação em tempo real é importante, contribuindo para melhorar a experiência do usuário.
- No entanto, como a latência com o servidor pode afetar a experiência do usuário, otimização de desempenho e posicionamento regional dos servidores podem ser fatores importantes.
- A combinação de LiveView e Svelte apresenta um novo paradigma para desenvolvedores acostumados ao modelo tradicional de desenvolvimento SPA, com potencial para reduzir a curva de aprendizado e aumentar a eficiência no desenvolvimento.
- A sincronização de estado em tempo real e a comunicação bidirecional oferecidas por essa tecnologia podem torná-la uma escolha atraente especialmente para ferramentas colaborativas, dashboards ou aplicações que lidam com dados em tempo real.
1 comentários
Opiniões no Hacker News
Um dos padrões usados em videogames multiplayer é ter código que roda essencialmente tanto no cliente quanto no servidor.
Fiz uma apresentação na ElixirConf 2022 sobre como combinar LiveView e Svelte, e os contribuidores do live_svelte ajudaram a tornar isso realidade.
Quando novas linhas entram, o LiveView atualiza o cliente, então basta fazer push delas para a tabela.
Usamos Svelte e LiveView juntos no BeaconCMS.
Em vez de gerenciar estado no cliente, você gerencia estado tanto no cliente quanto no servidor.
A limitação dessa abordagem está na velocidade da luz: há um limite para o quão perto o servidor pode ficar do usuário.
Sou a pessoa que criou o LiveSvelte, então fiquem à vontade para perguntar.
De forma geral, eu queria construir apps com este modelo: orientados a eventos, com atualizações bidirecionais em tempo real e servidor, eventos ordenados, estado local e remoto...
Estou usando controladores Stimulus reutilizáveis junto com LiveView no app, e isso também funciona sem atritos.
Projeto muito legal! Acabei de publicar um episódio do Svelte Radio sobre isso.