Дата створення: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, коли користувачі вручну вводять шлях, що не відповідає вашим бажаним правилам локалізації.