Итак, новая неделя — новая тема для серии.
Вообще, в Питере наступает настоящая осень: небо затянуло серой непроглядной тьмой, и единственное, что приходит на ум — «набросить на вентилятор» 😈
Так вот, давайте набросим на самое дорогое для фронтендеров — стейт-менеджеры не нужны!
Ну реально — это же нескончаемый источник хейта среди разработчиков. Зачем ещё плодить холивары?
А если немного вернуться в объективное русло, то у нас ведь всегда был самый крутой стейт-менеджер — Браузер и его адресная строка.
Всё состояние страницы можно описать прямо в URL — фильтры, сортировки, активные вкладки, выбранные элементы. Когда придёт время, приложение просто подгружает нужные данные в соответствии с этим состоянием.
🧩 В типичном фронтенд-приложении стейт обычно размазан по нескольким слоям:
* основная масса живёт на бэкенде,
* часть хранится на BFF, чтобы быстро получать данные,
* остатки — на клиенте, где мы с ними возимся.
И чтобы ничего не потерять, запускается бесконечный цикл синхронизации между этими слоями.
Пользователь изменил инпут → сработал эффект → эффект дернул ручку → запрос ушёл на BFF → там его обогатили → передали дальше → вернули ответ → разгрузили → обновили клиент...
♻️ И так по кругу.
Почему бы не сделать этот круг единым?
Есть адрес, описывающий состояние приложения → загружаешь приложение в нужном состоянии.
Что-то изменилось → обновился URL → приложение загрузило новое состояние.
Просто. Прозрачно. Логично.
Используйте для этого серверные компоненты или loader-pattern — и всё начнёт работать естественным образом, без лишнего прослойного хаоса.
📄 «А как же промежуточное состояние? Пока я не сабмитнул форму, где мне хранить данные?»
Отличный вопрос. Но тут тоже есть ответ.
Для формочек ты, скорее всего, уже используешь библиотеку — а ведь форма сама по себе и есть стейт-менеджер.
Пока ты заполняешь инпуты, внутреннее устройство хранит твои данные, даёт возможность подписываться и изменять стор.
Формы — это тот самый локальный стейт-менеджер, который уже у тебя есть.
Доклад по теме: Роутер как у сына маминой подруги — Павел Малышев
А ты как считаешь, нужны стейт-менеджеры или нет?
💯 — согласен, стейт-менеджеры не нужны
🗿 — не согласен, без стейт-менеджеров только лендинги клепать
Post #114
157