Next.js学习

152 阅读3分钟

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

Next.js学习|青训营笔记

课程目标

B(Business)端应用:用户群体是内部应用,只在内网,主要是解决企业需求的产品

C(Consumer)端应用:消费者,个人用户的产品

CSR,SSR,SSG

CSR (Client-Side Rendering)

客户端渲染,常见B端WEB应用开发模式,前后端分离,服务器压力相对较小,渲染工作在客户端进行,服务器返回不加工的HTML。

此时由于所有资源均需在客户端加载,首屏事件比较长

SSR (Server-Side Rendering)

服务器端渲染,SSR代码耦合度高,且模板语言中混杂编程语言,对于一些复杂功能很难维护

同构SSR

借助虚拟DOM的特性,将一份代码在服务端和客户端各执行一次:

  1. 服务端使用react-dom包提供的server端渲染api: renderToString (常用)或 renderToStaticMarkup直接渲染出包含页面信息的静态 html字符串。
  2. 客户端根据渲染出的静态 html 进行二次渲染,做一些绑定事件等交互操作。

SSG (Static Site Generation)

静态站点生成,在构建时直接把页面结构输出html到磁盘(CDN),每次访问直接把html返回给客户端,相当于一个静态资源。

CDN:建立并覆盖在Internet上,由分布在不同区域的边缘节点服务器组成的分布式网络。

相比SSR,因为不需要每次请求都由服务器端处理,所以可以大幅减轻服务器端的压力。

缺陷在于只能生成偏静态的页面,无法生成与用户相关的内容,即所有用户访问界面相同。

SSR,SSG的优势

1.利于SEO(Search Engine Optimization)

B端应用不用管搜索引擎,而C端应用的推广程度会受到搜索引擎的影响。

搜索引擎可以理解为一种爬虫,会爬取指定页面的HTML,并根据用户输入的关键词对页面内容进行排序检索。

SSR,SSG返回HTML中会含有用户搜索的内容,而CSR中没有,因此前者更利于被搜索到。

2. 更短的首屏时间

SSR/SSG只需要请求一个HTML界面就能展示出页面,虽然在服务器上调取接口,但服务器间的通信远比客户端快。因为不再需要请求大量js文件,使得SSR/SSG有更短的首屏时间。

什么是Next.js

基于React提供的相关服务器端渲染API实现,整个过程比较繁琐,从零实现对新手不友好。此时next.js作为封装好的集合可以帮助我们快速上手。

QQ截图20230131202303.jpg

Next.js是一个构建于node.js之上的开源Web开发框架,支持基于React的Web应用程序功能,例如服务端渲染和生成静态网站。

上手快,能力集全,而且覆盖了足够多的性能优化和生态。对于新手很友好。

以下均为实战部分,待我手操成功后再上传详细笔记

Next.js客户端开发

Next.js服务端开发