|
1 | 1 | <!-- i18n:start --> |
2 | 2 | [English](./README.md) · [简体中文](./README.zh-CN.md) · [日本語](./README.ja.md) · [한국어](./README.ko.md) · Русский · [Español](./README.es.md) · [Português (BR)](./README.pt-BR.md) · [Français](./README.fr.md) · [Tiếng Việt](./README.vi.md) |
3 | | -<!-- i18n:meta locale=ru source=README.md source-blob=01b5b4f72aa3c8871c185cfce21c6d696edb847b status=translated --> |
| 3 | +<!-- i18n:meta locale=ru source=README.md source-blob=bbf45a10aae9e88f68b27d84f51ee3e7e8a1e436 status=translated --> |
4 | 4 | <!-- i18n:end --> |
5 | 5 |
|
6 | 6 | <div align="center"> |
|
134 | 134 | - [Другие hook'и и вспомогательные функции](#другие-hookи-и-вспомогательные-функции) |
135 | 135 | - [Hook `useUrlStateBase` для других роутеров](#hook-useurlstatebase-для-других-роутеров) |
136 | 136 | - [Hook `useSharedState` для React.js](#hook-usesharedstate-для-reactjs) |
| 137 | + - [Hook `useLinkProps` для React.js](#hook-uselinkprops-для-reactjs) |
137 | 138 | - [Hook `useUrlEncode` для React.js](#hook-useurlencode-для-reactjs) |
138 | 139 | - [Вспомогательные функции `encodeState` и `decodeState`](#вспомогательные-функции-encodestate-и-decodestate) |
139 | 140 | - [Вспомогательные функции `encode` и `decode`](#вспомогательные-функции-encode-и-decode) |
@@ -698,6 +699,29 @@ function SettingsComponent() { |
698 | 699 |
|
699 | 700 | [Документация по API](packages/urlstate/useSharedState/README.ru.md) |
700 | 701 |
|
| 702 | +### Hook `useLinkProps` для React.js |
| 703 | + |
| 704 | +Хук, переносящий состояние на ссылку, которая ведёт на другой маршрут, — например, в переключателе языка. `setUrl` всегда пишет в текущий путь, этот хук — нет. |
| 705 | + |
| 706 | +```tsx |
| 707 | +'use client' |
| 708 | +import Link from 'next/link'; |
| 709 | +import { useRouter } from 'next/navigation'; |
| 710 | +import { useLinkProps } from 'state-in-url/useLinkProps'; |
| 711 | + |
| 712 | +export const form = { name: '' }; |
| 713 | + |
| 714 | +function LanguagePicker() { |
| 715 | + const linkProps = useLinkProps(form, useRouter().push); |
| 716 | + |
| 717 | + return <Link {...linkProps('/de/pricing')}>Deutsch</Link>; |
| 718 | +} |
| 719 | +``` |
| 720 | + |
| 721 | +В разметке остаётся обычный `href`, поэтому краулеры и `hreflang` видят канонический URL; состояние читается в момент клика. |
| 722 | + |
| 723 | +[Документация по API](packages/urlstate/useLinkProps/README.ru.md) |
| 724 | + |
701 | 725 | ### Hook `useUrlEncode` для React.js |
702 | 726 |
|
703 | 727 | [Документация по API](packages/urlstate/useUrlEncode/README.ru.md) |
|
0 commit comments