usePathname

usePathname — это хук для Клиентских Компонентов (Client Components), который позволяет читать текущий путь (pathname) URL.

'use client'

import { usePathname } from 'next/navigation'

export default function ExampleClientComponent() {
  const pathname = usePathname()
  return <p>Текущий путь: {pathname}</p>
}
'use client'

import { usePathname } from 'next/navigation'

export default function ExampleClientComponent() {
  const pathname = usePathname()
  return <p>Текущий путь: {pathname}</p>
}

usePathname намеренно требует использования Клиентских Компонентов (Client Components). Важно отметить, что Клиентские Компоненты не являются деоптимизацией. Они являются неотъемлемой частью архитектуры Серверных Компонентов (Server Components).

Например, Клиентский Компонент с usePathname будет отрендерен в HTML при первоначальной загрузке страницы. При переходе на новый маршрут этот компонент не нужно загружать повторно. Вместо этого компонент загружается один раз (в клиентском JavaScript-бандле) и перерисовывается на основе текущего состояния.

Полезно знать:

Параметры

const pathname = usePathname()

usePathname не принимает параметров.

Возвращаемое значение

usePathname возвращает строку с текущим путём URL. Например:

URLВозвращаемое значение
/'/'
/dashboard'/dashboard'
/dashboard?v=2'/dashboard'
/blog/hello-world'/blog/hello-world'

Примеры

Выполнение действий при изменении маршрута

'use client'

import { usePathname, useSearchParams } from 'next/navigation'

function ExampleClientComponent() {
  const pathname = usePathname()
  const searchParams = useSearchParams()
  useEffect(() => {
    // Выполните здесь какие-либо действия...
  }, [pathname, searchParams])
}
'use client'

import { usePathname, useSearchParams } from 'next/navigation'

function ExampleClientComponent() {
  const pathname = usePathname()
  const searchParams = useSearchParams()
  useEffect(() => {
    // Выполните здесь какие-либо действия...
  }, [pathname, searchParams])
}
ВерсияИзменения
v13.0.0Добавлен хук usePathname.