Web 渲染方式(CSR/SSR/SSG)与水合概念

0 阅读3分钟

CSR(Client-Side Rendering 客户端渲染)

核心框架:Vue, React, Angular

  • 工作方式:浏览器向服务器发送请求 → 服务器返回 HTML/JS/CSS等文件 → 最后浏览器通过 JS 动态渲染生成 DOM → 浏览器再进行渲染。

屏幕截图 2026-03-28 160357.png

  • 优点
    • 交互流畅:可直接响应。
    • 前后端分离:前端注重 UI,后端注重数据。
  • 缺点
    • 首屏加载较慢:打开时需加载本身及第三方库,且需通过 JS 渲染。
    • SEO 不太友好:DOM 结构通过 JavaScript 动态生成(注:目前爬虫普遍能支持爬取JS内容,情况有所改善)。
  • 适用场景:后台管理系统(不需要 SEO,对首屏速度要求不高,能用就行)、其他单页应用开发。

SEO 的全称是 Search Engine Optimization, 搜索引擎优化。通俗点说,就是通过调整网站的内容和结构,让它在百度、Google 这些搜索引擎的搜索结果里排名更靠前,从而获得更多免费的流量。


SSR(Server-Side Rendering 服务端渲染)

核心框架:Next.js

  • 工作方式:浏览器请求服务器 → 服务器处理接口(如有)并渲染成 HTML页面 → 返回 HTML 给浏览器 + 同时加载 JS/CSS → 执行水合

屏幕截图 2026-03-28 161245.png

  • 优点
    • 首屏加载快:服务器已直接渲染好 HTML 页面。
    • SEO 友好:能爬取到完整内容。
  • 缺点
    • 开发成本高:通常需要全栈开发人员。
    • 服务器压力大:所有渲染操作均在服务器进行。
  • 适用场景:电商网站、博客官网首页等。

SSG(Static Site Generation 静态网站生成)

核心框架:Next.js, Astro

  • 工作流程
    1. 本地打包(如 npm run build),生成静态 HTML 文件(每个路由对应一个 HTML)。
    2. 部署到 CDN 或 Nginx 等服务器。
    3. 浏览器请求 → 服务器返回 HTML → 进行水合

屏幕截图 2026-03-28 161509.png

  • 优点
    • 首屏加载极快:通过 CDN 分发静态文件。
    • 服务器压力小:CDN 承载请求,无需服务器执行操作。
    • SEO 最优:HTML 文件内容完整。
  • 缺点
    • 不适合动态数据:编译后为静态内容。
    • 构建时间长:路由过多时(如 100 个路由需编译 100 个 HTML 文件)。
  • 适用场景:大家看到的都是一样的->技术文档(如 Vue、React 文档)、静态营销页、静态新闻网站等。

Hydration(水合)

定义:指 HTML 静态内容通过 JavaScript 变成动态内容的结合阶段。

Next.js 为例,水合过程如下:

  1. 服务端:Next.js收到请求 → 服务器执行 React 组件代码获取数据 → 将组件渲染成静态 HTML 字符串并返回给浏览器。
  2. 浏览器(显示):浏览器收到 HTML 后立刻解析并显示内容(此时点击按钮等交互无反应)。
  3. 浏览器(下载):同时下载 JavaScript 文件(包括核心库、组件等代码)。
  4. 水合完成:JS 下载完成后,React 调用 hydrateRoot 方法,比对真实 DOM 和虚拟 DOM。若结构一致,React 给真实 DOM 绑定事件监听器,此时可进行交互。

image.png image.png

总结对比表

特性CSR (客户端渲染)SSR (服务端渲染)SSG (静态网站生成)
首屏速度极快
SEO 友好度较差最优
服务器压力小 (主要靠 CDN)
数据时效性实时实时编译时固定
典型场景后台管理、SaaS电商、新闻首页文档、博客、营销页