@php /** @var \Laravel\Boost\Install\GuidelineAssist $assist */ @endphp ## Livewire Core - Use the `search-docs` tool to find exact version specific documentation for how to write Livewire & Livewire tests. - Use the `{{ $assist->artisanCommand('make:livewire [Posts\\CreatePost]') }}` artisan command to create new components - State should live on the server, with the UI reflecting it. - All Livewire requests hit the Laravel backend, they're like regular HTTP requests. Always validate form data, and run authorization checks in Livewire actions. ## Livewire Best Practices - Livewire components require a single root element. - Use `wire:loading` and `wire:dirty` for delightful loading states. - Add `wire:key` in loops: @verbatim ```blade @foreach ($items as $item)
{{ $item->name }}
@endforeach ``` @endverbatim - Prefer lifecycle hooks like `mount()`, `updatedFoo()` for initialization and reactive side effects: @verbatim public function mount(User $user) { $this->user = $user; } public function updatedSearch() { $this->resetPage(); } @endverbatim ## Testing Livewire @verbatim Livewire::test(Counter::class) ->assertSet('count', 0) ->call('increment') ->assertSet('count', 1) ->assertSee(1) ->assertStatus(200); @endverbatim @verbatim $this->get('/posts/create') ->assertSeeLivewire(CreatePost::class); @endverbatim