Next.js实战 | 青训营笔记

90 阅读4分钟

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

静态站点生成SSG是什么

Static Site Generation:代表的是静态站点生成。在构建的时候直接把结果页面输出html到磁盘,每次访问直接把html返回给客户端,相当于一个静态资源

客户端渲染CSR

Client Side Rendering:客户端渲染目前 Web 应用中主流的渲染模式,一般由 Server 端返回的初始 HTML 页面,然后再由 JS 去异步加载数据,然后完成页面的渲染。也就是所有的页面渲染、逻辑处理、页面路由、接口请求均是在浏览器中发生。其实,现代主流的前端框架均是这种渲染方式,这种渲染方式的好处在于实现了前后端架构分离,利于前后端职责分离,并且能够首次渲染迅速有效减少白屏时间。同时,CSR可以通过在打包编译阶段进行预渲染或者骨架屏生。

服务端渲染SSR

Server-SideRendering:服务端渲染是指在服务端完成页面的渲染,在服务端完成页面模板、数据填充、页面渲染,然后将完整的HTML内容返回给到浏览器。由于所有的渲染工作都在服务端完成,因此网站的首屏时间和TTI(页面可交互的时间)都会表现比较好。   但是,要注意由于渲染需要在服务端完成,并不能很好进行前后端职责分离,而且白屏时间也会比较长,同时,对于服务端的负载要求也会比较高。 优点

  • 首屏渲染快
  • 利于SEO
  • 可以生成缓存片段,生成静态化文件

缺点

  • 服务端压力较大
  • 开发条件受限
  • 学习成本相对较高

SSR有同构渲染

同构渲染 : 所谓同构,通俗的讲,就是一套React代码在服务器上运行一遍,到达浏览器又运行一遍服务端渲染完成页面结构,客户端渲染绑定事件。它是在SPA的基础上,利用服务端渲染直出首屏,解除单页面应用在首屏渲染上面临的窘境。

为什么能实现同构渲染?

SSR 之所以能够实现,有两个重要前提,缺一不可:

  • Node.js的存在 前面我们讲过,同构渲染项目的 React.js 代码会在客户端和服务器端各执行一次。这得益于 Node 环境下能运行 JavaScript 代码,才使得同构成为可能。
  • 虚拟 DOM 的存在 前面讲到,js操作 DOM 的能力是浏览器给予它的, 而在 Node 环境下,是没有 DOM 这个概念存在的,如果你的 React 代码里存在直接操作 DOM 的代码,在 Node 环境下这些代码会报错,就无法实现同构了。幸好在 React 框架中引入了虚拟 DOM 这个概念

CMS是什么

CMS代表“内容管理系统”,是一种软件工具,允许我们创建,编辑和发布内容。虽然早期的CMS软件用于管理文档和本地计算机文件,但大多数CMS系统现在专门用于管理Web上的内容。内容管理系统分为四种不同类型:企业内容管理系统(ECM / ECMS),Web内容管理系统,Web组内容管理系统和组件内容管理系统。

CMS可以做什么

CMS的目标是提供用于构建和修改网页内容的直观用户界面,它可以帮助帮助用户创建和管理他们的网站,帮助网站管理员管理构成现代网站的许多不同资源,内容类型和各种数据。现代网站至少使用了HTML,CSS,Javascript和图像来创建供访问者阅读的网页内容。每个CMS的核心是能够组织这些资源并生成可由Web浏览器读取的有效内容。每个CMS还提供了Web发布工具,允许一个或多个用户在Web上实时发布更新。