Спросите свой вопрос и получите сводку документа, используя эту страницу и выбранного вами поставщика AI
Содержимое этой страницы было переведено с помощью ИИ.
Смотреть последнюю версию оригинального контента на английскомIf you have an idea for improving this documentation, please feel free to contribute by submitting a pull request on GitHub.
GitHub link to the documentationCopy doc Markdown to clipboard
Хук useRewriteURL
Хук useRewriteURL предназначен для управления локализованными перезаписями URL на стороне клиента. Он автоматически определяет, нужно ли корректировать текущий URL до «красивой» локализованной версии в соответствии с локалью пользователя и правилами перезаписи, определёнными в intlayer.config.ts.
В отличие от стандартной навигации, этот хук использует window.history.replaceState для обновления URL в адресной строке без перезагрузки страницы или запуска цикла навигации роутера.
Использование
Просто вызовите хук в компоненте на стороне клиента.
Копировать код в буфер обмена
import { useRewriteURL } from "react-intlayer";const MyComponent = () => { // Автоматически исправляет /fr/tests на /fr/essais в адресной строке, если существует правило переписывания useRewriteURL(); return <div>My Component</div>;};Как это работает
- Обнаружение: Хук отслеживает текущий
window.location.pathnameи локаль пользователя. - Сопоставление: Он использует внутренний движок Intlayer, чтобы проверить, совпадает ли текущий pathname с каноническим маршрутом, для которого существует более «красивый» локализованный алиас для текущей локали.
- Исправление URL: Если находится более подходящий алиас (и он отличается от текущего пути), хук вызывает
window.history.replaceState, чтобы обновить URL в браузере, при этом сохраняя тот же канонический контент и состояние.
Зачем это использовать?
- SEO: Гарантирует, что пользователи всегда попадают на единственный авторитетный красивый URL для данного языка.
- Согласованность: Предотвращает несоответствия, когда пользователь может вручную ввести канонический путь (например,
/fr/privacy-notice) вместо локализованной версии (/fr/politique-de-confidentialite). - Производительность: Обновляет адресную строку без вызова нежелательных побочных эффектов маршрутизатора или повторного монтирования компонентов.