Next.js项目实战| 青训营笔记

134 阅读3分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 8 天

重点内容:

  1. 客户端渲染 CSR
  2. 服务端渲染 SSR
  3. 静态站点生成 SSG

详细知识点:

一、客户端渲染 CSR

CSR(Client-Side Rendering)。常见B端WEB应用开发模式,前后端分离,服务器压力相对更轻,渲染工作在客户端进行,服务器直接返回不加工的HTML用户在后续访问操作。

优点:

  1. 减少服务器压力
  2. 首次加载完之后,页面响应速度快
  3. 可局部刷新,无需每次都请求完整页面
  4. 可进行各种组件复用
  5. 无需与服务端各项逻辑进行耦合,结构清晰,开发体验友好 缺点:
  6. 首屏速度慢
  7. 渲染前要下载js和css文件
  8. 爬虫看不到完整代码

二、服务端渲染 SSR

SSR(Server-Side Rendering)后端渲染。服务端渲染需要部署前端的服务端,服务端渲染的过程为:服务器端执行JS => 构建HTML页面 => 输出HTML给浏览器

优点:

  1. 用户看到的完整页面的速度快
  2. 节省客户端资源 缺点:
  3. 服务器资源占用高
  4. 开发成本较高
  5. 开发者需要考虑两端

三、同构 SSR

BFF:Backend For Frontend,服务于前端应用的后端
同构SSR:前后端一体化,一套React代码在服务器上运行一遍,到达浏览器又运行一遍。前后端都要参与渲染,而且首次渲染出的HTML要一致。

四、静态站点生成 SSG

SSR(Static Site Generation)。在构建的时候直接把结果页面输出html刀磁盘,每次访问直接把html返回给客户端,相当于一个静态资源。

优点:

  • 相比SSR,因为不需要每次请求抖由服务器处理,所以可以大幅度减轻服务器的压力 缺点:
  • 只能用于偏静态的页面,无法生成与用户相关的内容,也就是所有的用户访问的页面都是相同的。

五、SSR,SSG的优势

1.利于SEO(Search Engine Optimization 搜索引擎优化)。
搜索引擎优化是一种利用搜索引擎的搜索规则来提高目前网站在有关搜索引擎内的自然排名的方式。浏览器的推广程度,取决于搜索引擎对站点检索的排名,搜索引擎可以理解成一种爬虫,它会爬取指定页面的HTML,并根据用户输入的关键词对页面内容进行排序检索,最后形成我们看到的结果。
2. 更短的首屏时间
SSR/SSG 只要请求一个HTML文件就能展现出页面,虽然在服务器上会调取接口,但服务器之间的通信要远比客户端块,甚至是同一台服务器上的本地接口调取。因为不需要再请求大量js文件,这就使SSR/SSG可以拥有更短的首屏时间。

参考

SSR同构的原理和实践
SSR 服务端渲染和同构原理