Задайте питання та отримайте підсумок документа, вказавши цю сторінку та обраного вами постачальника штучного інтелекту
Вміст цієї сторінки перекладено за допомогою штучного інтелекту.
Переглянути останню версію оригінального вмісту англійською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 до "pretty" локалізованої версії на основі локалі користувача та правил перепису, визначених у intlayer.config.ts.
На відміну від стандартної навігації, цей хук використовує window.history.replaceState для оновлення URL в адресному рядку без повного перезавантаження сторінки або запуску циклу навігації роутера.
Використання
Просто викличте хук у компоненті на стороні клієнта.
Скопіюйте код у буфер обміну
import { useRewriteURL } from "react.intlayer";import { useRewriteURL } from "react-intlayer";const MyComponent = () => { // Автоматично виправляє /fr/tests на /fr/essais в адресному рядку, якщо існує правило переписування useRewriteURL(); return <div>Мій компонент</div>;};Як це працює
- Виявлення: Хук відстежує поточний
window.location.pathnameтаlocaleкористувача. - Співставлення: Він використовує внутрішній движок Intlayer для перевірки, чи відповідає поточний pathname канонічному маршруту, який має більш привабливий локалізований псевдонім для поточної локалі.
- Виправлення URL: Якщо знайдено кращий псевдонім (і він відрізняється від поточного шляху), хук викликає
window.history.replaceState, щоб оновити URL у браузері, зберігаючи той самий канонічний вміст та стан.
Навіщо це використовувати?
- SEO: Гарантує, що користувачі завжди потрапляють на єдиний, авторитетний pretty URL для конкретної мови.
- Consistency: Запобігає невідповідностям, коли користувач може вручну ввести канонічний шлях (наприклад,
/fr/privacy-notice) замість локалізованої версії (/fr/politique-de-confidentialite). - Performance: Оновлює адресний рядок без виклику небажаних побічних ефектів маршрутизатора або перемонтувань компонентів.