Next.js 提供了多种渲染策略,每种都有不同的性能特征和使用场景。 选择合适的渲染模式可以显著提升应用性能和用户体验。
核心概念:
📅 当前页面渲染时间:2025-12-17T09:54:09.722Z
这个页面使用静态渲染(SSG),在构建时预渲染,所以每次访问看到的时间都是构建时的时间。
在构建时预渲染,生成静态 HTML
每次请求都在服务器渲染
静态生成 + 定时更新
逐步发送渲染结果,提升 TTFB
手动触发页面重新生成
静态 + 动态混合渲染 实验性
在浏览器中渲染
组合多种渲染策略
验证并行数据获取
Partial Prerendering
| 模式 | 渲染时机 | 更新频率 | 性能 | 使用场景 |
|---|---|---|---|---|
| SSG | 构建时 | 不更新 | ⭐⭐⭐⭐⭐ | 营销页、文档 |
| SSR | 请求时 | 每次请求 | ⭐⭐⭐ | 用户数据、实时内容 |
| ISR | 构建时 + 定时 | N 秒后 | ⭐⭐⭐⭐ | 博客、电商产品 |
| Streaming | 请求时(流式) | 每次请求 | ⭐⭐⭐⭐ | 复杂页面、仪表盘 |
| PPR | 构建 + 请求时 | 混合 | ⭐⭐⭐⭐⭐ | 混合内容页面 |
| CSR | 客户端 | 实时 | ⭐⭐ | 交互组件、客户端状态 |
pnpm build构建输出会显示每个页面的渲染类型:
• ○ (Static) - 静态生成
• ƒ (Dynamic) - 动态渲染
• ℇ (Streaming) - 流式渲染
pnpm build && pnpm start某些渲染行为只在生产环境中生效,开发环境可能有差异
右键 → 查看页面源代码,可以看到服务端渲染的 HTML
每个页面都会输出渲染日志,帮助理解渲染时机