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.