渲染模式:SSR、SSG、ISR、CSR、SPA

2023-06-12· 3min

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

#原理

  • 将组件在服务端直接渲染成 HTML 字符串,作为服务端响应返回给浏览器,最后在浏览器端将静态的 HTML “激活”(hydrate) 为能够交互的客户端应用

#优势

  • 更快的首屏加载、更好的SEO

#考量

  • 更高的服务端负载、合理的缓存策略

#SSG 静态站点生成(Static-Site Generation)

#原理

  • 也被称为预渲染,如果用服务端渲染一个页面所需的数据对每个用户来说都是相同的,那么我们可以只渲染一次,提前在构建过程中完成,预渲染的页面生成后作为静态HTML文件被服务器托管

#优势

  • 性能高、更易部署

#考量

  • SSG 仅可以用于提供静态数据的页面,即数据在构建期间就是已知的,并且在多次请求之间不能被改变。每当数据变化时,都需要重新部署

#场景

  • 构建基于内容的网站,比如文档站点或者博客
  • ...

#ISR 增量静态再生(Incremental Static Regeneration)

#原理

  • 详见Next.js,SSG 和 SSR 的组合,提供一种机制能够在 Server 中自动的执行 SSG,主要形式是静态访问

#优势

  • 通过为大多数请求提供预渲染的静态页面来减少服务器负载,能让内容尽量保持更新同时从访问行为上仍然保持静态访问

#考量

  • 未预渲染的页面会先看到 fallback 页面,有可能访问数据过期的页面

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

#原理

  • 在浏览器上执行 JavaScript 以生成 DOM 并显示内容的渲染方法,通过数据 API 进行交互

#优势

  • 部署成本低、动态交互丰富

#考量

  • 首屏加载时间长、SEO不友好

#SPA 单页应用(Single Page Application)

  • 操作的页面仅一个,其它类同 CSR...