Next.js, server-rendered search вместо client-only выдачи
Поиск на useState и useEffect работает целиком в браузере. После загрузки компонента запускается запрос, ответ записывается в state, затем появляется список результатов.
В App Router состояние поиска можно перенести в URL. Адрес /search?q=jazz&page=2 содержит запрос и страницу выдачи. Server Component читает searchParams и получает данные до рендера результатов. Интерактивная форма остаётся на клиенте и обновляет URL. Результаты, ссылки и содержимое выдачи формирует сервер для текущего адреса.
Статья на Хабр
Проект: EventMap
Stepik: Next.js III: SEO, i18n 2026