Next.js, фильтры без client state

Один из заметных сдвигов в App Router происходит в тот момент, когда фильтры перестают жить в наборе локальных состояний и начинают описываться через URL.

Для каталога это даёт понятную схему. Пользователь меняет фильтр, URL обновляется, сервер читает searchParams, выполняет fetch и рендерит уже готовый результат. Без отдельного client state для самих данных, без лишнего useEffect, без ручной синхронизации между адресной строкой и интерфейсом.

Такой подход полезен не только тем, что кода становится меньше. Фильтры начинают переживать обновление страницы, нормально работают с back/forward, дают прямую ссылку на результат и проще отлаживаются. Адрес страницы начинает содержать реальное состояние, а не его тень.

Client state при этом не исчезает совсем. Он остаётся там, где ему и место: во временных UI-деталях, черновом вводе, локальных переключателях до подтверждения. Но сами фильтры страницы вполне могут жить без него.

Статья на Хабр Проект: Goods Finder Stepik: Next.js I: JavaScript 2026

#nextjs #AppRouter #searchParams #filters #urlstate #servercomponents #react #javascript #frontend #webdev

Next.js, фильтры без client state | Сетка — социальная сеть от hh.ru