Задайте вопрос и получите краткое содержание документа через любого ИИ-провайдера на этой странице
Содержимое этой страницы было переведено с помощью ИИ.
Смотреть последнюю версию оригинального контента на английском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 для Next.js, это клиентский хук, который автоматически управляет локализованными переписыванием URL. Он обеспечивает соответствие URL в адресной строке браузера «красивому» локализованному пути, определённому в вашем intlayer.config.ts, даже если пользователь вручную вводит канонический путь с префиксом локали.
Этот хук работает незаметно, используя window.history.replaceState, что позволяет избежать лишних навигаций через роутер Next.js или перезагрузок страницы.
Использование
Просто вызовите хук в Client Component, который является частью вашего layout.
Копировать код в буфер обмена
"use client";import { useRewriteURL } from "next-intlayer";const MyClientComponent = () => { // Автоматически исправляет /fr/privacy-notice на /fr/politique-de-confidentialite в адресной строке useRewriteURL(); return null;};Как это работает
- Отслеживание пути: Хук слушает изменения
localeпользователя. - Обнаружение перезаписи: Он сверяет текущий
window.location.pathnameс правилами перезаписи в вашей конфигурации. - Корректировка URL: Если для текущего пути найден более «красивый» локализованный псевдоним, хук вызывает
window.history.replaceState, чтобы обновить адресную строку, при этом оставляя пользователя на той же внутренней странице.
Зачем использовать это в Next.js?
Пока intlayerMiddleware обрабатывает серверные переписывания и начальные перенаправления, хук useRewriteURL гарантирует, что URL в браузере остается согласованным с вашей предпочтительной SEO-структурой даже после клиентских переходов.
- Чистые URL: Обеспечивает использование локализованных сегментов, например /fr/essais вместо /fr/tests.
- Производительность: Обновляет адресную строку без запуска полного цикла роутера или повторной выборки данных.
- Соответствие SEO: Предотвращает проблемы с дублированным контентом, обеспечивая видимость только одной версии URL для пользователей и поисковых ботов.