AFINAL, O QUE É LIVEWIRE?
A proposta dela é criar interfaces dinâmicas (similares ao Vue) com os códigos do blade e do próprio Laravel. Sim! Exatamente! Você, programador Back-end, poderá criar um front-end bem desenvolvido com o Livewire!
Indo direto ao ponto, o Livewire funciona de um jeito beeem peculiar. Qualquer interação que acontecer com ele, se faz uma requisição AJAX e o HTML é renderizado do lado do servidor e depois retornado ao cliente. Esse fluxo permite que ele seja reativo, porém, um pouco mais lento. Ele tem algo parecido com um DOM virtual, onde ele compara as alterações com o DOM renderizado e então aplica as modificações.
MOTIVAÇÕES PARA A CRIAÇÃO DO LIVEWIRE
Integração com Laravel: Como um entusiasta de Laravel, Porzio buscava uma maneira de integrar diretamente a lógica de front-end e back-end dentro do framework Laravel. Isso ajudaria a manter a consistência e a coerência no código.
Reatividade: Livewire foi projetado para trazer reatividade ao desenvolvimento PHP, similar ao que frameworks como Vue.js e React fazem com JavaScript. O objetivo era permitir que as mudanças no back-end fossem refletidas automaticamente no front-end sem a necessidade de recarregar a página.
Produtividade: A intenção era aumentar a produtividade dos desenvolvedores, permitindo que eles se concentrassem mais na lógica de negócios e menos em detalhes de implementação de front-end.
VANTAGENS E DESVANTAGENS DO LIVEWIRE
- A facilidade de trabalho, pois é simples de entender para quem já usa o Laravel.
- O nível profissional dele permite uma avalanche de possibilidades com simples comandos, todos com um resultado bem próximo de um Vue.
Porém, nem tudo são flores. Apesar de parecer um paraíso, o Livewire possui pontos negativos também. O primeiro deles, é que, por ser uma ferramenta muito recente, o suporte e dúvidas tiradas são poucas, até nos fóruns mais conhecidos dos desenvolvedores, como o Stack Overflow.
Outro ponto, é que, por ter a proposta de não usar uma linguagem diferente, no caso, o JavaScript. Porém, esse problema pode ser resolvido usando a micro framework AlpineJS como adicional, menor e sem ser tão pesada quanto um Angular, por exemplo.
Durante o trabalho com Livewire, podemos usar comandos do Laravel para criar os componentes, como “php artisan make:livewire Teste”. A lib trabalha com dois arquivos separados: a view e o arquivo que comanda a view. No caso, um deles tem a extensão .blade.php, o qual estamos acostumados a criar os estilos da tela e tudo que aparecerá para o cliente. No outro, o qual possui o mesmo nome da blade, é o controlador, onde terão as funções chamadas por métodos e eventos da blade e onde são declaradas as variáveis presentes na tela.
Exemplificando, criando um componente para ser um contador e mostrar em tempo real o número sendo adicionado na tela em cada clique do botão, usaremos o comando “php artisan make:livewire contador”. Dois arquivos são criados, o “Contador.php” e o “contador.blade.php”. Este último, temos o botão e a variável do número que será adicionado. O primeiro, por sua vez, terá toda a lógica por trás da funcionalidade, como a função de incrementar número e a variável número.
Em resumo, a biblioteca Livewire é uma ferramenta muito interessante e essencial para quem não se adaptou ou não conhece o Vue. Entretanto, como trata-se de uma lib muito recente (lançada em julho de 2019), seu suporte é limitado e ela é pouco abordada em fóruns da internet. É perfeito para aqueles que já estão acostumados com Laravel e querem criar interfaces de forma prática. Esclarecidos esses pontos, é necessário uma análise dos prós e contras para optar pelo uso desse recurso, que é muito promissor e acrescenta demais ao programador front-end.
Já postamos alguns outros conteúdos sobre Laravel, quer dar uma olhada?
Empresas que utilizam Laravel no desenvolvimento
Empresa de desenvolvimento em PHP Laravel
CONHEÇA OS REDATORES DESTE CONTEÚDO