Задайте вопрос и получите краткое содержание документа через любого ИИ-провайдера на этой странице
История версий
- "Добавлена утилита usePathname"v10.0.023.06.2026
- "Инициализация истории"v8.2.022.06.2026
Содержимое этой страницы было переведено с помощью ИИ.
Смотреть последнюю версию оригинального контента на английском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
Интеграция Next.js: Документация хука usePathname
Хук usePathname возвращает текущий путь Next.js с удаленным сегментом локали. Это полезно для создания навигации с учетом локали — например, для определения активного элемента навигации — без необходимости вручную удалять префикс локали.
Импорт usePathname в Next.js
Копировать код в буфер обмена
import { usePathname } from "next-intlayer";Обзор
usePathname оборачивает встроенный хук usePathname() из next/navigation, добавляет параметры поиска (search params) и удаляет префикс локали с помощью getPathWithoutLocale. Он запускает повторный рендеринг при каждой навигации на стороне клиента. Хук доступен только в клиентских компонентах (Client Components, требует "use client").
Использование
Копировать код в буфер обмена
"use client";
import type { FC } from "react";
import { usePathname } from "next-intlayer";
type NavItemProps = {
href: string;
label: string;
};
const NavItem: FC<NavItemProps> = ({ href, label }) => {
const pathname = usePathname();
const isActive = pathname === href;
return (
<a href={href} aria-current={isActive ? "page" : undefined}>
{label}
</a>
);
};
export default NavItem;Возвращаемое значение
Открыть таблицу в модальном окне для четкого просмотра всех данных
| Тип | Описание |
|---|---|
string | Текущий путь без префикса локали и параметров запроса локали. |
Поведение
- Удаление локали: Удаляет начальный сегмент локали (например,
/ru/dashboard→/dashboard). - Удаление параметров поиска: Также удаляет параметр запроса
?locale=...при использовании режима маршрутизации на основе параметров поиска. - Реактивность: Автоматически обновляется при каждой навигации на стороне клиента через Next.js App Router.
- Безопасность для SSR: Возвращает серверный путь во время первого рендера, а затем синхронизирует параметры поиска на клиенте.
Сравнение с useLocale
Хук useLocale из next-intlayer уже предоставляет pathWithoutLocale как часть возвращаемого значения. Используйте usePathname, когда вам нужен только путь, и не требуется функционал переключения локали.
Копировать код в буфер обмена
// Когда вам нужны и состояние локали, и путь:
import { useLocale } from "next-intlayer";
const { locale, pathWithoutLocale } = useLocale();
// Когда вам нужен только путь:
import { usePathname } from "next-intlayer";
const pathname = usePathname();Пример
Копировать код в буфер обмена
"use client";
import type { FC } from "react";
import { usePathname } from "next-intlayer";
const links = [
{ href: "/dashboard", label: "Панель управления" },
{ href: "/settings", label: "Настройки" },
];
const Sidebar: FC = () => {
const pathname = usePathname();
return (
<nav>
{links.map(({ href, label }) => (
<a
key={href}
href={href}
style={{ fontWeight: pathname === href ? "bold" : "normal" }}
>
{label}
</a>
))}
</nav>
);
};
export default Sidebar;Связанные ресурсы
useLocale— текущая локаль + переключатель локали (также предоставляетpathWithoutLocale)getPathWithoutLocale— базовая утилита, используемая этим хуком