Создание:2025-08-23Последнее обновление:2025-08-23
Ссылайтесь на этот документ на ваш любимый ассистент AIChatGPTClaudeDeepSeekGoogle AI modeGeminiPerplexityMistralGrok
Спросите свой вопрос и получите сводку документа, используя эту страницу и выбранного вами поставщика AI
Содержимое этой страницы было переведено с помощью ИИ.
Смотреть последнюю версию оригинального контента на английскомИзменить эту документацию
Если у вас есть идея по улучшению этой документации, не стесняйтесь внести свой вклад, подав запрос на вытягивание на GitHub.
Ссылка на документацию GitHubКопировать
Копировать Markdown документа в буфер обмена
Хук useRewriteURL
Хук useRewriteURL для SolidJS предназначен для управления локализованными перезаписями URL на стороне клиента. Он автоматически корректирует URL в браузере до его «красивой» локализованной версии на основе текущей локали и конфигурации в intlayer.config.ts.
Используя window.history.replaceState, он избегает лишних навигаций Solid Router.
Использование
Вызовите хук внутри компонента, который является частью вашего приложения.
Как это работает
- Обнаружение: Хук использует
createEffectдля отслеживания изменений реактивного значенияlocale(). - Сопоставление: Определяет, соответствует ли текущий
window.location.pathnameканоническому маршруту, для которого существует более «красивый» локализованный псевдоним для текущего языка. - Исправление URL: Если обнаружен более «красивый» псевдоним, хук вызывает
window.history.replaceState, чтобы обновить адресную строку, не влияя на внутреннее состояние навигации и не вызывая повторных рендеров компонентов.
Зачем это использовать?
- Канонические URL: Обеспечивает единый URL для каждой локализованной версии вашего контента, что критично для SEO.
- Удобство разработчика: Позволяет сохранять внутренние определения маршрутов каноничными, одновременно предоставляя внешнему миру удобные локализованные пути для пользователей.
- Согласованность: Исправляет URL, когда пользователи вручную вводят путь, который не соответствует вашим предпочтительным правилам локализации.