Русский
Открыть в Telegram

Пост Управление стейтом в URL в Next.js App Router

12 ноября 2024
З
Заметки про React
Ссылка
нажмите — покажем
Управление стейтом в URL в Next.js App Router В своей статье Аврора Шарфф на примере компонента фильтра показывает, что не так просто управлять стейтом в URL search params в Next.js App Router. Для того чтобы сразу показывать выбранные фильтры при изменении URL, необходимо использовать useTransition и useOptimistic. Иначе URL обновится только после окончания рендера страницы. Также автор рекомендует валидировать входящие данных из URL с помощью валидатора Zod. Вместо изобретения собственного велосипеда можно использовать библиотеку nuqs – типобезопасный менеджер стейта в URL search params. У него есть встроенный валидатор, где можно объявить дефолтный стейт. Также он поддерживает Next.js и useTransition. Пример использования: // searchParams.ts import { parseAsString, createSearchParamsCache, parseAsArrayOf } from 'nuqs/server'; export const searchParams = { category: parseAsArrayOf(parseAsString).withDefault([]), q: parseAsString.withDefault(''), }; export const searchParamsCache = createSearchParamsCache(searchParams); // Search.tsx export default function Search() { const params = useParams(); const [isPending, startTransition] = useTransition(); const [q, setQ] = useQueryState( 'q', searchParams.q.withOptions({ shallow: false, startTransition, }), ); return ( <form> <input onChange={e => { setQ(e.target.value); }} defaultValue={q} type="search" /> <SearchStatus searching={isPending} /> </Form> ); } https://aurorascharff.no/posts/managing-advanced-search-param-filtering-next-app-router/
53 · 3.4K ·

Рядом в ленте

ЗЗаметки про ReactБета релиз React Compiler Вышел бета релиз React Compiler и ESLint плагина. npm install -D babel-plugin-react-compiler@beta eslint-plugin-react-compiler@beta КоЗЗаметки про ReactДва пути к двум React Интересные мысли о разном видении интеграции современных функций React в Next.js и TanStack Start. ✨ Next.js – одна из самых популярных би
это сообщение
ЗЗаметки про ReactБезопасное использование dangerouslySetInnerHTML В своем блоге Алекс Макартур рассказал о безопасном использовании dangerouslySetInnerHTML. По умолчанию, dangerЗЗаметки про ReactСохраняйте один уровень абстракции для каждой функции Представьте компонент, который показывает информацию о текущем пользователе и статус активен ли пользовате
ЗЗаметки про ReactЗаметки про React@ru_react_notes · канал · Технологии
3 412подписчиков491постов в индексе
Лента площадки Открыть в Telegram

Открытая публичная лента из поискового индекса ChatCrawler — «Google по публичному Telegram»; обновляется по мере обхода площадки. Время — UTC.

Только публичный контент, официальный API Telegram. О проекте · Вопросы · Границы индекса · Убрать страницу из выдачи · Каталог · Поиск · Как мы считаем