Middle: питання на співбесіді з теми «Livewire»
Найпопулярніші питання з реальних Laravel/PHP співбесід для всіх рівнів
Всі теми
API
Authentication
Authorization
Blade
Broadcasting
Caching
Collections
Database
Debugging
Eloquent
Events
Filament
Files
Livewire
Notifications
Performance
PHP
Queues
Routing
Scheduling
Service Container
Service Providers
Testing
Архітектура
Безпека
Валідація
2 питання
Livewire дозволяє будувати реактивні інтерфейси на PHP без написання JavaScript. Компонент має серверний стан (public-властивості) та дії (методи).
class Counter extends Component
{
public int $count = 0;
public function increment(): void { $this->count++; }
public function render() { return view('livewire.counter'); }
}
<button wire:click="increment">+</button>
<span>{{ $count }}</span>
При взаємодії Livewire робить AJAX-запит, повторно рендерить компонент на сервері й оновлює лише змінений DOM. Підходить для форм, таблиць, дашбордів у Laravel-моноліті; для складної клієнтської логіки доповнюється Alpine.js.
wire:model двостороннє прив'язує поле форми до public-властивості компонента.
<input type="text" wire:model="search"> {{-- deferred --}}
<input type="text" wire:model.live="search"> {{-- одразу при вводі --}}
<input type="text" wire:model.live.debounce.300ms="search">
<input type="text" wire:model.blur="search"> {{-- при втраті фокуса --}}
- За замовчуванням значення синхронізується deferred - на наступній дії (наприклад, submit), що економить запити.
.liveсинхронізує одразу - потрібно для живого пошуку чи валідації, але створює запит на кожне натискання (часто комбінують із.debounce).