Next.js 如何实现 SSG(静态生成)?动态路由如何预渲染?

SSG 在构建时把页面渲染成静态 HTML,访问极快、可上 CDN。

// app/blog/[slug]/page.tsx
export async function generateStaticParams() {
  const posts = await getAllPosts()       // 构建时拿到所有 slug
  return posts.map(p => ({ slug: p.slug }))
}
export default async function Page({ params }) {
  const post = await getPost(params.slug)
  return <article>{post.body}</article>
}

dynamicParams = false 时可禁止未预渲染的参数被按需生成(访问即 404)。Pages Router 用 getStaticPaths + getStaticProps。

同分类其他题目