useParams()
Client hook returning the dynamic route parameters of the current URL.
Syntax
import { useParams } from 'next/navigation'; const params = useParams() Returns
Record<string, string | string[]> — The current route's dynamic params.
Examples
'use client'
import { useParams } from 'next/navigation'
// Route: app/blog/[slug]/page.tsx
export function ShareButton() {
const params = useParams<{ slug: string }>()
const url = `https://example.com/blog/${params.slug}`
return <button onClick={() => navigator.clipboard.writeText(url)}>Share</button>
}
'use client'
import { useParams } from 'next/navigation'
// Catch-all route: app/shop/[...path]/page.tsx
export function Crumbs() {
const { path } = useParams<{ path: string[] }>()
return <span>{path?.join(' / ')}</span>
}
Notes
Client Components only. For Server Components, use the async `params`
prop of the page/layout instead (awaited in Next 15). Catch-all
segments return string arrays. Empty object when no dynamic params.