Creation:2025-08-23Last update:2025-08-23

    Хук useRewriteURL

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

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

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

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

    tsx
    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, когда пользователи вручную вводят путь, который не соответствует вашим предпочтительным правилам локализации.