[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 = undefined
No segments - showing all categories
This is the shop home page, matching /dynamic-routes/shop with no additional segments.
/dynamic-routes/shop
3 subcategories