useParams
useParams
— это хук для Клиентских Компонентов (Client Components), который позволяет читать динамические параметры маршрута, заполненные текущим URL.
'use client'
import { useParams } from 'next/navigation'
export default function ExampleClientComponent() {
const params = useParams<{ tag: string; item: string }>()
// Маршрут -> /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
возвращает объект, содержащий заполненные динамические параметры текущего маршрута.
- Каждое свойство объекта представляет активный динамический сегмент.
- Имя свойства соответствует имени сегмента, а значение свойства — тому, чем заполнен сегмент.
- Значение свойства будет либо
string
, либо массивомstring
в зависимости от типа динамического сегмента. - Если маршрут не содержит динамических параметров,
useParams
возвращает пустой объект. - При использовании в Pages Router
useParams
вернётnull
при первоначальном рендеринге и обновит свойства в соответствии с правилами выше, как только роутер будет готов.
Примеры:
Маршрут | URL | useParams() |
---|---|---|
app/shop/page.js | /shop | {} |
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 . |