这是我参与「第五届青训营 」伴学笔记创作活动的第 8 天
重点内容: 🍉B端和C端🍉 🍍三种渲染模式🍍🍑Nextjs🍑
🍈B端和C端🍈
B端web应用:挂在内网给内部用户去使用的应用,像教学管理平台、信息管理系统之类的。
C端web应用:面向整个互联网的应用,像掘金,各大app。
Next.js用于开发C端应用的框架!
🍇三种渲染模式🍇
- CSR客户端渲染,前后端分离,资源不需要动态加载,所以首屏加载时间更长。
- SSR服务器端渲染,前后端不分离,代码耦合度高,复杂难用,已不怎么使用。
- 同构SSR:服务于前端的后端,前后端一体化,一套 React 代码在服务器上运行一遍,到达浏览器又运行一遍。前后端一起渲染,且首次渲染出的 HTML 要一样。
- SSG静态站点生成,在构建的时候直接把结果页面输出html到磁盘,每次访问直接把静态站点生成,html返回给客户端,相当于一个静态资源。
- CDN: 建立并覆盖在Internet 之上,由分布在不同区域的边缘节点服务器群组成的分布式网络。
- 相比 SSR,因为不需要每次请求都由服务器端处理,所以可以大幅减轻服务器端的压力。
- 缺陷在于只能用于偏静态的页面,无法生成与用户相关的内容,也就是所有的用户访问的页面都是相同的。
SSR/SSG的优势
- 利于SEO,搜索引擎优化。浏览器的推广程度,取决于搜索引擎对站点检索的排名,搜索引擎可以理解是一种爬虫,它会爬取指定页面的 HTML,并根据用户输入的关键词对页面内容进行排序检索,最后形成我们看到的结果。
- 只需要请求一个 HTML 文件就能展现出页面,虽然在服务器上会调用接口,但服务器之间的通信要远比客户端快,甚至是同一台服务器上的本地接口调取。因为不再需要请求大量的js文件,使得SSR/SSG可以拥有更短的首屏时间。
🍊Nextjs🍊
Nextjs 是一个构建于Nodejs之上的开源 Web 开发框架,支持基于React的Web应用程序功能,例如服务端渲染和生成静态网站。
- 上手快,能力集全,而且覆盖了足够多的性能优化和生态
- 对于新同学掌握前后端一体化的开发模式很友好
🥝Nextjs应用🥝
数据注入
getInitialProps
在服务器端执行,只能在页面层面进行绑定,采用同构,首次渲染服务器端渲染路由跳转使用客户端路由,意味着如果使用 router 跳转当前页,会在客户端执行这部分逻辑。
getServerSideProps
SSR,与 getlnitialProps 不同的是即使使用router 跳转当前页,也只会在服务端执行这部分逻辑。
getStaticProps
SSG在服务器端构建执行。如果涉及动态路由 (带参数),需要使用getStaticPaths 配置所有可能的参数情况。
大图优化 - webp
图片格式可以转换成webp格式,但并不是这种格式一定好。网速较慢时,webp的加载时间相较png/jpg会更短,这是因为webp格式比原图更小;网速较快时,webp的加载时间可能比png/jpg要长,这是因为虽然webp格式图片比较小,但解析耗时更长,而且webp不是所有设备都兼容!
🍓总结🍓
本堂课程的内容涉及的未知知识点较多,有些部分理解起来会有难度,但先不慌,随着以后的学习,相信会对本次课程的一些内容有新的见解和更深刻的认识!