Создание:2025-08-23Последнее обновление:2025-08-23

    Хук 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>;
    };

    Как это работает

    1. Обнаружение: Хук отслеживает текущий window.location.pathname и локаль пользователя.
    2. Сопоставление: Он использует внутренний движок Intlayer, чтобы проверить, совпадает ли текущий pathname с каноническим маршрутом, для которого существует более «красивый» локализованный алиас для текущей локали.
    3. Исправление URL: Если находится более подходящий алиас (и он отличается от текущего пути), хук вызывает window.history.replaceState, чтобы обновить URL в браузере, при этом сохраняя тот же канонический контент и состояние.

    Зачем это использовать?

    • SEO: Гарантирует, что пользователи всегда попадают на единственный авторитетный красивый URL для данного языка.
    • Согласованность: Предотвращает несоответствия, когда пользователь может вручную ввести канонический путь (например, /fr/privacy-notice) вместо локализованной версии (/fr/politique-de-confidentialite).
    • Производительность: Обновляет адресную строку без вызова нежелательных побочных эффектов маршрутизатора или повторного монтирования компонентов.