[slug]
[...slug]
[[...slug]]
generateStaticParams
notFound()
params
generateMetadata
1export async function generateStaticParams() { 2 const posts = await getPosts(); 3 return posts.map((post) => ({ 4 slug: post.slug, 5 })); 6} 7 8export default async function Page({ 9 params, 10}: { 11 params: Promise<{ slug: string }>; 12}) { 13 const { slug } = await params; 14 const post = await getPost(slug); 15 16 if (!post) { 17 notFound(); 18 } 19 20 return <Article post={post} />; 21}
params.slug
/post/hello
"hello"
/docs/a/b/c
["a","b","c"]
/shop
undefined
/shop/a/b
["a","b"]
Use `generateStaticParams` to pre-render and `notFound()` for invalid paths.
params.slug = ["guides","deployment","vercel"]
Segments: 3 • Path: /guides/deployment/vercel
Step-by-step guide to deploying your application to Vercel.
/docs/getting-started
/docs/api/users/create
/docs/api/users/list
/docs/guides/authentication