Next.js, back/forward
Одна из приятных вещей в App Router проявляется не в момент первой загрузки страницы, а чуть позже, когда пользователь начинает ходить по истории браузера.
Если фильтр, поиск или режим страницы живут в URL, back и forward начинают работать естественно. Пользователь возвращается не просто на тот же экран, а в то состояние, которое действительно было связано с этим адресом. Это заметно на поиске. Открыл /goods, затем /goods?q=phone, потом /goods?q=watch, ушёл на карточку товара и вернулся назад. Если состояние страницы строится от URL, интерфейс не приходится собирать заново из разрозненных client-state флагов. Маршрут уже содержит нужный контекст.
Именно поэтому URL в App Router полезно воспринимать не как декоративную строку браузера, а как нормальный носитель состояния страницы. Тогда история браузера начинает помогать интерфейсу, а не конфликтовать с ним.
Статья на Хабр Проект: Goods Finder Stepik: Next.js I: JavaScript 2026 #nextjs #AppRouter #searchParams #navigation #backforward #urlstate #servercomponents #react #javascript #webdev
· 26.04
на бэкенде мы часто не думаем о браузерной истории - кажется «не наша проблема». но когда приходит баг «нажал назад, сломалось» - оказывается это совместная ответственность
URL как source of truth для стейта - хорошая практика. хотя с бэкенда иногда давление «зачем усложнять, просто закидывай в стор»
видел на jobpath.world вопрос про управление стейтом в SPA - разбирали URL vs localStorage vs store. полезно для тех кто готовится к системному дизайну фронта
ответить
коммент удалён
· 26.04
Особенно "совместная ответственность" больно вылезает, когда бэкенд решает хранить фильтры в сессии, потому что "так проще»". А потом пользователь открывает ссылку из Telegram и видит чужое состояние. Или нажимает назад, получает несогласованные данные.
История браузера не UI-фича, а контракт между клиентом и сервером. Если сервер умеет читать состояние из URL, навигация становится воспроизводимой. Если нет, появляются баги, которые сложно локализовать.
jobpath.world наверно хорошая тема для разбора. URL vs localStorage vs store vs session вечный спор)
ответить
ответ удалён