⚠️ Alpha内测版本警告:此为早期内部构建版本,尚不完整且可能存在错误,欢迎大家提Issue反馈问题或建议
Skip to content

2.2 你的网页何时被创建——Next.js 渲染策略全景

认知重构

网页的 HTML 内容,到底是在什么时候、由谁来生成的?这个问题的答案,就是"渲染策略"的本质。

四种渲染策略对比

策略HTML 生成时机生成者首屏速度SEO数据新鲜度
CSR运行时浏览器实时
SSR请求时服务器实时
SSG构建时服务器极快静态
ISR构建时 + 后台更新服务器极快准实时

可视化解构

如何选择渲染策略?

Next.js 中的默认行为

在 Next.js App Router 中:

  • 默认是静态的:如果页面没有动态数据获取,会在构建时生成
  • 自动变为动态:使用了 cookies()headers()searchParams 等会触发 SSR
  • 可以显式控制:通过 export const dynamic = 'force-dynamic' 等配置
typescript
// 静态生成(默认)
export default function Page() {
  return <h1>Hello</h1>
}

// 动态渲染(自动检测)
export default function Page({ searchParams }) {
  // 使用了 searchParams,自动变为 SSR
  return <h1>Search: {searchParams.q}</h1>
}

// 强制动态渲染
export const dynamic = 'force-dynamic'
export default function Page() {
  return <h1>Always SSR</h1>
}

本章导航

  • 2.2.1 CSR:客户端渲染的场景与限制
  • 2.2.2 SSR:服务器渲染与 SEO 优化
  • 2.2.3 SSG:静态生成的最佳实践
  • 2.2.4 ISR:增量静态再生的魔力
  • 2.2.5 混合渲染:一个页面多种策略