<b>Livewire ломается не в роутах, а в жизненном цикле компонента</b>
Чаще всего проблемы начинаются не с Blade, а с тем, что компонент каждый запрос собирается заново. Если в render() или mount() тянуть тяжёлые запросы, побочные эффекты и мутировать state “на глаз”, интерфейс быстро становится непредсказуемым.
Держите в голове три правила:
— публичные свойства должны быть простыми и сериализуемыми;
— бизнес-логику лучше выносить в сервисы, а не размазывать по методам компонента;
— любое состояние, которое влияет на UI, нужно обновлять явно, а не через скрытые зависимости.
Второй частый источник боли — лишние перерисовки. Когда в одном компоненте слишком много полей, он начинает стрелять запросами по каждому чиху. Разбейте форму на меньшие части, а тяжёлые списки отдавайте отдельно или через lazy-loading. Для реактивных экранов это обычно даёт больше, чем попытка “ускорить” один большой компонент.
Ещё одна ловушка — работа с коллекциями и моделями напрямую в публичных свойствах. Лучше хранить только ID, фильтры и примитивы, а данные подтягивать в computed accessors или через отдельный слой. Тогда компонент проще тестировать, а баги с сериализацией перестают всплывать в самый неудобный момент.
Если Livewire ведёт себя странно, сначала режьте компонент по ответственности, потом смотрите на запросы и только после этого трогайте шаблон.
Laravel & PHP Deep — фреймворки и пакеты
@laravel_php_deep
<b>Livewire ломается не в роутах, а в жизненном цикле компонента</b>
Этот пост опубликован в Telegram-канале Laravel & PHP Deep — фреймворки и пакеты. Подписаться можно по ссылке: @laravel_php_deep.