<b>Livewire ломают не события, а слишком жирные компоненты и лишние запросы</b>
Если экран начинает тормозить, ищите не «магический баг», а три вещи: слишком большой state, частые перерисовки и запросы в каждом действии. Livewire хорош для интерактивности, но плохо переносит компонент, который тащит в себя половину страницы.
Правила, которые экономят время:
— дробите форму на маленькие компоненты;
— не храните в public-свойствах то, что можно вычислить;
— debounce для поиска и фильтров, а не запрос на каждый символ;
— не делайте тяжелые вычисления в render();
— для списков сразу думайте о pagination и lazy loading.
Отдельно проверьте Blade: лишние вложенные циклы, include внутри repeat и тяжелые коллекции в шаблоне быстро превращают удобный UI в медленный. Если компонент нужен только для показа данных, лучше вынести вычисления в сервис или query layer, а в Livewire оставить состояние и события.
Хороший Livewire-компонент выглядит скучно: мало логики, мало данных, понятные границы ответственности. Чем меньше он знает о бизнес-правилах и SQL, тем легче его тестировать и тем реже он начинает «дрожать» под нагрузкой.
Laravel & PHP Deep — фреймворки и пакеты
@laravel_php_deep
<b>Livewire ломают не события, а слишком жирные компоненты и лишние запросы</b>
Этот пост опубликован в Telegram-канале Laravel & PHP Deep — фреймворки и пакеты. Подписаться можно по ссылке: @laravel_php_deep.