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

    Хук useRewriteURL

    Хук useRewriteURL для SolidJS предназначен для управления локализованными перезаписями URL на стороне клиента. Он автоматически корректирует URL в браузере до его «красивой» локализованной версии на основе текущей локали и конфигурации в intlayer.config.ts.

    Используя window.history.replaceState, он избегает лишних навигаций Solid Router.

    Использование

    Вызовите хук внутри компонента, который является частью вашего приложения.

    import { useRewriteURL } from "solid-intlayer";
    
    const Layout = (props) => {
      // Автоматически исправляет /fr/tests на /fr/essais в адресной строке, если существует правило переписывания
      useRewriteURL();
    
      return <>{props.children}</>;
    };

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

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

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

    • Канонические URL: Обеспечивает единый URL для каждой локализованной версии вашего контента, что критично для SEO.
    • Удобство разработчика: Позволяет сохранять внутренние определения маршрутов каноничными, одновременно предоставляя внешнему миру удобные локализованные пути для пользователей.
    • Согласованность: Исправляет URL, когда пользователи вручную вводят путь, который не соответствует вашим предпочтительным правилам локализации.