Livewire ломается не от магии, а от границ между UI и доменной логикой
Есть наблюдение которое стоит проверить: Livewire-страницы часто тормозят не из-за числа компонентов, а потому что компонент стал контроллером, сервисом и валидатором одновременно.
Мини-чек-лист:
— публичные свойства хранят состояние экрана, не модели целиком;
— тяжелые выборки вынесены в query/service слой;
— mount() не делает работу, которую можно отложить до клика.
Для форм правило жесткое: компонент отвечает за ввод, ошибки и UX. Создание заказа, лида или тикета — в action/service классе. Так сценарий легко дернуть из очереди, API или теста.
Отдельно проверь гидратацию: большие массивы и вложенные DTO превращают каждый клик в сериализацию половины страницы. Чаще безопаснее хранить ID и получать нужный срез данных заново.
Livewire хорош, когда он тонкий. Если компонент неудобно тестировать без DOM — выносите бизнес-логику ниже, пока экран не стал приложением внутри приложения.
Laravel & PHP Deep — фреймворки и пакеты
@laravel_php_deep
Livewire ломается не от магии, а от границ между UI и доменной логикой
Этот пост опубликован в Telegram-канале Laravel & PHP Deep — фреймворки и пакеты. Подписаться можно по ссылке: @laravel_php_deep.