Как сохранять React состояние в URL.
Вставка
- Опубліковано 7 лют 2025
- В этом видео рассмотрим, как сохранять state компонента в url с помощью get параметров. Как обычно, в начале рассмотрим как решить эту "локально", затем перейдем к написанию хука.
Codesandbox:
codesandbox.io...
Github репозиторий с хуками:
github.com/Ayu...
Мой канал в Telegram:
telegram.me/ay...
Оо, это огонь))
Спасибо за фидбэк!
Спасибо вам за интересную информацию.
Возможно, в одном из роликов вы сможете рассмотреть тему возврата React компонента из хуков.
Не знаю почему, но youtube почему-то банит комментарии со ссылками.
Хорошая статья на эту тему
`blog.bitsrc.io/new-react-design-pattern-return-component-from-hooks-79215c3eac00`
Пример Example E (usePopup) сделан по примеру ниже
`codesandbox.io/s/return-component-from-hooks-eljr00?file=/src/ExampleE/usePopup.tsx`
Пример от создателя react-table и react-query
`ua-cam.com/video/-UjbTFc9NL4/v-deo.html
codesandbox.io/s/how-to-return-components-from-react-hooks-tjmc8?file=/src/index.js`
Подумаю, что можно снять по этому поводу.
Спасибо за предложение!
Было бы круто если бы в примерах был TypeScript)
Я бы был не против, сам являюсь большим фанатом TS'а, однако на данный момент многие еще плохо в нем разбираются, хотелось бы тут сфокусироваться чисто на самом React'е.
Но идея хорошая, я думаю стоит в репозиторий с хуками из данных уроков добавлять версии с TS. Спасибо за фидбэк!
@@ayub_begimkulov Если честно благодаря TypeScript нашел ваш блог и канал)
Хай, это же для rrd5? на rrd6 useSearchParams?
Да, в 6-й версии уже есть такой хук.
А почему не использовать вместо кастомных serialize и deserialize взять JSON.stringify и JSON.parse?
Потому что `getSearchParam` будет возвращать null, если нету такого get параметра.
Вместо if проверок на null, лучше использовать stringOrNullVar ?? ""
Это все дело вкуса, используй как тебе удобнее)
// Поможет не обрабатывать кейс с null в desirialize: (v) => (v ? v : "")
function getSearchParam(search, param) {
const searchParams = new URLSearchParams(search);
return searchParams.get(param) ?? "";
}
// Удалит при пустом value: ?name=
function setSearchParam2(search, param, value) {
const searchParams = new URLSearchParams(search);
Boolean(value)
? searchParams.set(param, value)
: searchParams.delete(param);
return searchParams.toString();
}
Да, удаление параметра в данном примере я не рассматривал)