| Rendering Method | Behavior | Best Use Case | Next.js API |
|---|---|---|---|
| SSR | Server generates a new HTML page on every request | Dynamic, frequently updated data | fetch(...) |
| SSG | Pre-built static HTML served from cache | Static content (blogs, docs) | fetch(..., { cache: "force-cache" }) |
| ISR | Statically generated pages revalidated at intervals | Content that updates periodically but doesn’t require real-time updates | fetch(..., { next: { revalidate: X } }) |
| CSR | Browser renders content after downloading JS | Highly interactive apps with minimal SEO concerns | fetch() in useEffect() |
fetch 请求可通过配置缓存模式来控制数据的缓存策略:标准 SSG/SSR 流程:全静态(无 dynamic API)或全动态(有 dynamic API)
export const dynamic = 'force-static' // 全静态
export const dynamic = 'force-dynamic' // 全动态
<Suspense> 边界里。Static Rendering
(build time or through revalidation): 同一个页面有些地方是预渲染成static内容
Dynamic Rendering
(using dynamic APIs): HTML is generated at request time
A component becomes dynamic if it uses the following APIs: