Спросите свой вопрос и получите сводку документа, используя эту страницу и выбранного вами поставщика AI
Содержимое этой страницы было переведено с помощью ИИ.
Смотреть последнюю версию оригинального контента на английском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 для 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}</>;};Как это работает
- Обнаружение: Хук использует
createEffectдля отслеживания изменений реактивного значенияlocale(). - Сопоставление: Определяет, соответствует ли текущий
window.location.pathnameканоническому маршруту, для которого существует более «красивый» локализованный псевдоним для текущего языка. - Исправление URL: Если обнаружен более «красивый» псевдоним, хук вызывает
window.history.replaceState, чтобы обновить адресную строку, не влияя на внутреннее состояние навигации и не вызывая повторных рендеров компонентов.
Зачем это использовать?
- Канонические URL: Обеспечивает единый URL для каждой локализованной версии вашего контента, что критично для SEO.
- Удобство разработчика: Позволяет сохранять внутренние определения маршрутов каноничными, одновременно предоставляя внешнему миру удобные локализованные пути для пользователей.
- Согласованность: Исправляет URL, когда пользователи вручную вводят путь, который не соответствует вашим предпочтительным правилам локализации.