1、React CSR

  • CSR渲染流程
  • image.png

2、React SSR

  • 是指将单页面应用(SPA)在服务器渲染成HTML片段,发送到浏览器,然后交由浏览器为其绑定状态与事件,成为完全可交互页面的过程。
  • SSR渲染流程image.png
  • 服务端只负责首次“渲染”(真正意义上,只有浏览器才能渲染页面,服务端其实是生成HTML内容),然后返回给客户端,客户端接管页面交互(事件绑定等逻辑),之后客户端路由切换时,直接通过Js代码来显示对应内容,不再需要服务端渲染(只有页面刷新时会需要)

3、为什么要用SSR

优点:

  • 更快的首屏加载速度:无需等待Js内容完成下载且执行才显示内容,更快速地看到完整渲染的页面,有更好的体验度。
  • 更好的SEO
    • 爬虫可以直接抓取渲染之后的页面,CSR首次返回的HTML文档中,是空节点(root),不包含内容,爬虫就无法分析该网站内容,因此无法排名。而SSR返回的是渲染之后的HTML代码片段,内容完整,更容易被爬虫分析与索引。image.png
  • 基于旧版本的搜索引擎:可以通过在HTML文档中Meta加title和description来做简单的SEO,这两个本质上不会提高搜索的排名,而是提高网站转化率。给网站提供更多的描述,促进点击率而已。
  • 基于新版本的搜索引擎:没啥好说的,得用SSR

缺点:

  • 对服务器性能消耗较高
  • 项目复杂度变高,出问题需要在前端、node、后端三者之间找
  • 需要考虑 SSR 机器的运维、申请、扩容,增加了运维成本(可以通过 Serverless 解决)

    4、什么是同构应用

  • 相同的代码片段既能够在客户端运行的同时,也能在服务端运行。该代码片段既可以被成为同构应用

  • 从这个维度上讲,同构和服务端渲染又有所区别,同构更像是服务端渲染和浏览器端渲染的交集,它弥补了服务端和浏览器端的差异,从而使得同一套代码或逻辑得以统一运行。同构的核心是“同一套代码”,这是脱离于两端角度的另一个维度。