这是我参与「第五届青训营」伴学笔记创作活动的第8天
一、本堂课重点内容:
二、详细知识点介绍:
-
应用
Next.js用于开发C端应用
B端应用与C端应用
B端应用一般放于内网使用 C端应用一般放于外网使用 -
三种渲染模式
-
CSR
客户端渲染,常见B端web应用开发模式,前后端分离,后端不负责页面如何渲染,不会对HTML进行加工,渲染工作在客户端进行,服务器端返回给前端的内容中不会包含页面中的任何元素,模板页面中的所有元素是在请求后编译加入
常用于单页面应用,所需资源在一次请求中加载完成
缺点:首屏时间更长
-
SSR
与CSR相对应,是服务端渲染,特点为:代码耦合度高,且模板语言中混杂编程语言以及一些复杂的功能,Java PHP负责渲染的逻辑,前端只负责UI和交互
缺点:不利于维护,不好应用于大型项目,
痛点:服务器端的代码与模板页面中的代码混杂在一起
优化:同构SSR
同构SSR 服务器端返回给前端的是一整个完整页面(response),其中,API下拉内容是接口项目,page下直接的目录类似react项目中的页面,即一个项目中,node接口服务以及模板页面都在一个项目结构目录下,但是不会维护在一个文件内(前后端一体化的体现),并且前后端都参与渲染 BFF node服务,作为中介,将下游的请求数据进行拼接汇总,传给上游,提高了大型项目的可维护性与可复用性
SSR最大缺点:服务器端压力较大
-
SSG
效果与SSR相同,不会每次请求由服务器处理,在构建时将结果从html上传至CDN处,访问路由相当于访问纯静态HTML文件
优点:大幅度减轻服务器端压力
缺点:只能用于偏静态页面,无法生成与用户相关的内容,偏展示类型内容
-
-
SSR与SSG优势
B端应用多用于内网,由于模板页面中的所有元素是在请求后编译加入,所以搜索内容关键词起效不大
C端应用多用于外网,可以通过搜索引擎关键词查找,重点是信息曝光(搜索引擎的排名),故采用SSR/SSG
另外优势:SSR/SSG不需要请求大量的js文件,所以可以缩短首屏时间,提高用户体验上的舒适感
-
为什么选择Next.js
程序员开发页面前的工作中需要写大量重复的逻辑,而Next.js将这些重复工作总结并且基于该工作进行部分优化,覆盖了足够多的性能优化和生态,对新同学掌握前后端一体化的开发模式很友好