useParams
useParams
— это хук для Клиентских компонентов (Client Components), который позволяет читать динамические параметры маршрута, заполненные текущим URL.
'use client'
import { useParams } from 'next/navigation'
export default function ExampleClientComponent() {
const params = useParams()
// Маршрут -> /shop/[tag]/[item]
// URL -> /shop/shoes/nike-air-max-97
// `params` -> { tag: 'shoes', item: 'nike-air-max-97' }
console.log(params)
return <></>
}
'use client'
import { useParams } from 'next/navigation'
export default function ExampleClientComponent() {
const params = useParams()
// Маршрут -> /shop/[tag]/[item]
// URL -> /shop/shoes/nike-air-max-97
// `params` -> { tag: 'shoes', item: 'nike-air-max-97' }
console.log(params)
return <></>
}
Параметры
const params = useParams()
Хук useParams
не принимает параметров.
Возвращаемое значение
useParams
возвращает объект, содержащий заполненные динамические параметры текущего маршрута.
- Каждое свойство объекта представляет собой активный динамический сегмент.
- Имя свойства соответствует имени сегмента, а значение свойства — заполненному значению сегмента.
- Значение свойства может быть либо
строкой
, либо массивомстрок
в зависимости от типа динамического сегмента. - Если маршрут не содержит динамических параметров,
useParams
возвращает пустой объект. - При использовании в
pages
,useParams
вернётnull
.
Примеры:
Маршрут | URL | useParams() |
---|---|---|
app/shop/page.js | /shop | null |
app/shop/[slug]/page.js | /shop/1 | { slug: '1' } |
app/shop/[tag]/[item]/page.js | /shop/1/2 | { tag: '1', item: '2' } |
app/shop/[...slug]/page.js | /shop/1/2 | { slug: ['1', '2'] } |
История версий
Версия | Изменения |
---|---|
v13.3.0 | Добавлен хук useParams . |