← Back
Edit Post
Title
Description
Pre-render dynamic routes, generateMetadata for SEO, on-demand generation for new slugs.
Content
Markdown supported
# generateStaticParams `generateStaticParams` pre-renders dynamic routes at build time—instant page loads, no loading states. ## Basic Usage From `app/[slug]/page.tsx`: ```tsx export async function generateStaticParams() { const posts = await getPublishedPosts(); return posts.map(post => ({ slug: post.slug })); } export default async function BlogPostPage({ params }) { const { slug } = await params; const post = await getPublishedPostBySlug(slug); return <MarkdownContent>{post.content}</MarkdownContent>; } ``` ## Dynamic Metadata Combine with `generateMetadata` for SEO: ```tsx export async function generateMetadata({ params }) { const { slug } = await params; const post = await getPublishedPostBySlug(slug); return { title: post.title, description: post.description }; } ``` New slugs not in `generateStaticParams` are generated on-demand and cached. Use `updateTag()` to invalidate when content changes.
Published
Save Changes
Cancel