~ / noticias /laravel-livewire-v36-novas-diretivas-html-e-acoes-javascript $ _

Laravel Livewire v3.6: Novas Diretivas HTML e Ações JavaScript

Lucas Souza Lucas Souza 2 min de leitura Notícias
Laravel Livewire v3.6: Novas Diretivas HTML e Ações JavaScript

O Laravel Livewire lançou sua versão 3.6 no final de fevereiro, trazendo recursos empolgantes para desenvolvedores que buscam criar interfaces dinâmicas e interativas com mais facilidade. Entre as novidades estão novas diretivas HTML para manipulação de elementos no DOM e o suporte a ações JavaScript, que permitem executar código no lado do cliente ou realizar atualizações otimistas antes de uma requisição ao servidor. Vamos explorar os destaques dessa atualização!

Ações JavaScript

Caleb Porzio, o criador do Livewire, introduziu o suporte a ações JavaScript, que são funções JavaScript definidas pelo desenvolvedor e chamadas a partir de eventos como wire:click ou diretamente via $wire. Essas ações podem ser usadas para executar código apenas no lado do cliente ou para aplicar atualizações otimistas antes de disparar uma requisição ao servidor.

Veja um exemplo prático retirado do Pull Request #9202:

<?php
use Livewire\Volt\Component;
 
new class extends Component {
    public function save()
    {
        // Lógica de salvamento aqui...
    }
};
?>
 
<div>
    <button wire:click="doSomething">Do Something</button>
</div>
 
@script
<script>
    $js('doSomething', () => {
        console.log('doSomething');
 
        $wire.save();
    });
</script>
@endscript

Além disso, é possível chamar ações JavaScript diretamente do PHP usando o método ->js():

$this->js('onPostSaved');

Essa funcionalidade abre portas para interações mais fluidas e personalizadas na interface do usuário. Para mais detalhes, consulte a documentação oficial sobre ações.

Novas Diretivas HTML

A versão 3.6 também trouxe novas diretivas HTML que tornam o Livewire ainda mais poderoso e intuitivo. Josh Hanley contribuiu com as diretivas wire:show e wire:text, enquanto Caleb Porzio adicionou wire:cloak e wire:transition.

  • wire:show: Similar ao x-show do Alpine.js, essa diretiva controla a visibilidade de um elemento no DOM usando CSS. Veja um exemplo:
<div>
    <button x-on:click="$wire.showModal = true">Novo Post</button>
 
    <div wire:show="showModal">
        <form wire:submit="save">
            <textarea wire:model="content"></textarea>
 
            <button type="submit">Salvar Post</button>
        </form>
    </div>
</div>
  • wire:text: Equivalente ao x-text do Alpine.js, essa diretiva atualiza dinamicamente o conteúdo de um elemento, sendo ideal para interfaces otimistas. Confira este exemplo:
<div>
    <button x-on:click="$wire.likes++; $wire.like()">Curtir</button>
 
    Curtidas: <span wire:text="likes"></span>
</div>

Além disso, as diretivas wire:cloak e wire:transition ajudam a melhorar a experiência do usuário ao ocultar elementos antes do carregamento e adicionar transições suaves, respectivamente.

Para aprender mais sobre essas diretivas, acesse a documentação oficial:

Notas de Lançamento

A lista completa de novos recursos e mudanças pode ser encontrada no diff entre as versões 3.5.20 e 3.6.0 no GitHub. Para um mergulho mais profundo, a documentação do Livewire é o lugar perfeito para começar.

Lucas Souza
Lucas Souza

{AI Engineer} — apaixonado por Laravel, arquitetura de software e construir produtos com impacto. Compartilho aqui tutoriais, descobertas e reflexões sobre o dia a dia de engenharia.

Você também pode gostar

FilamentPHP V4 está chegando: veja as principais novidades!
Pacotes

FilamentPHP V4 está chegando: veja as principais novidades!

A versão 4 do FilamentPHP promete revolucionar o desenvolvimento de painéis administrativos com Laravel e Livewire. Neste artigo, compartilho as principais mudanças arquiteturais, melhorias de desempenho e recursos inéditos que vão transformar a experiência dos desenvolvedores.

· 3 min
Otimize sua aplicação Laravel com o novo Memoized Cache Driver (Laravel 12.9)
Tutoriais

Otimize sua aplicação Laravel com o novo Memoized Cache Driver (Laravel 12.9)

O Laravel 12.9 trouxe uma novidade poderosa: o Memoized Cache Driver. Essa feature otimiza o desempenho das aplicações ao armazenar em memória os valores obtidos do cache durante o tempo de execução da requisição, evitando múltiplos acessos ao cache.

· 3 min
Laravel Wayfinder: Integrando seu backend Laravel ao frontend TypeScript com facilidade
Pacotes

Laravel Wayfinder: Integrando seu backend Laravel ao frontend TypeScript com facilidade

Neste post, vou mostrar como o Laravel Wayfinder pode simplificar a integração entre suas rotas e controllers Laravel com o seu código TypeScript frontend, eliminando URLs hardcoded e garantindo tipos totalmente seguros.

· 3 min
Tutorial: Como Integrar o Laravel com Twilio para Enviar e Receber Mensagens no WhatsApp
Tutoriais

Tutorial: Como Integrar o Laravel com Twilio para Enviar e Receber Mensagens no WhatsApp

Neste post, eu te ensino a integrar o Laravel com o Twilio pra enviar e receber mensagens no WhatsApp. Configuro o ambiente (usei Docker com Sail, mas você escolhe o seu), crio uma conta no Twilio, pego as credenciais e organizo tudo no .env e no config/twilio.php. Defino rotas pra mensagens e status, exponho a app com o Expose e conecto o WhatsApp no Twilio Sandbox. No MessageController, recebo as mensagens e respondo automaticamente com o SDK do Twilio, tudo testado com logs. Simples, prático e direto ao ponto!

· 1 min

VirguIA

beer & code assistant

conectando…

Não foi possível iniciar o chat agora.

tocando