非常好的问题 👍在现代前端(尤其是 React / Next.js / Docusaurus 等框架)中,CSR、SSR、SSG 是三种常见的页面渲染模式。它们的主要区别在于:页面的 HTML 是在什么时候、由谁生成的(浏览器还是服务器)。
代表框架:React、Vue(默认模式)、Docusaurus(默认)核心思想:👉 首次加载时服务器只返回一个空的 HTML 外壳(带 <div id="root"></div>)和 JS 文件。👉 浏览器下载 JS 后在客户端执行 React 代码,动态生成 DOM 并渲染页面。
<div id="root"></div>
流程:
浏览器请求页面 → 服务器返回空 HTML + JS → 浏览器执行 JS → 渲染出内容
优点:
缺点:
适用场景:
前后端完全分离的 SPA、仪表盘、管理后台。
代表框架:Next.js、Nuxt.js、Remix核心思想:👉 页面 HTML 在服务器端由 React 渲染生成,再发送给浏览器。👉 浏览器收到完整 HTML 后快速展示内容,再“水合(hydrate)”绑定事件。
浏览器请求页面 → 服务器执行 React 渲染 → 返回完整 HTML → 浏览器展示页面并加载 JS → hydrate 交互
内容动态、需要 SEO 的网站(如博客、新闻、商品页)。
代表框架:Next.js(getStaticProps)、Docusaurus、Gatsby核心思想:👉 在 构建阶段(build time) 生成所有 HTML 文件。👉 部署时直接是静态文件,访问速度极快。
getStaticProps
npm run build → 生成 HTML 文件 → 部署静态文件服务器(如 Vercel、GitHub Pages)
文档网站(如 Docusaurus)、个人博客、产品官网。