这是我参与「第五届青训营 」伴学笔记创作活动的第 7 天
课堂重点
今天直播课讲的是nextjs,对nextjs的用法有了个大致的介绍,讲了服务器端渲染如何构建,但是自己还是太菜了以及之前也没用过,这里就尝试把课后问题写出来来回顾知识吧
课后问题
什么是 CSR, SSR 和 SSG?常规的 SSR 与 同构 SSR 之间有什么不同?
csr:客户端渲染(Client-Side Rendering)。常见 B 端 WEB 应用开发模式.前后端分离.服务器压力相对更轻,渲染工作在客户端进行,服务器直接返回不加工的HTML 用户在后续访问操作
ssr:服务端渲染(Server-Side Rendering)。浏览器请求页面 URL 的时候,服务端将我们需要的 HTML 文本组装好,并返回给浏览器,这个 HTML 文本被浏览器解析之后,不需要经过 JavaScript 脚本的下载过程,即可直接构建出我们所希望的 DOM 树并展示到页面中。
ssg:静态站点生成.在ssr的基础上,每个页面对应的 HTML 文档在项目 build 打包构建时就已经生成好了,用户请求的时候服务端不需要再发送其它请求和进行二次组装,直接将该 HTML 文档响应给客户端即可,客户端与服务端之间的通信也就变得更加简单,这种静态适用于个人博客和项目技术文档页面。
传统的就是后端返回html,前端只负责UI样式和js交互,同构的简单说就是一个前端项目里的组件,部分服务端渲染后输出,部分由客户端异步渲染。这样可以保障网页渲染速度,也有利于搜索引擎 SEO。
一个 SSR 框架的实现要有哪些必须的元素?
为什么我们需要使用 nextjs,它能帮我们解决什么问题?
普通的服务器端渲染自己尝试去写的话会非常繁琐,而且会有很多过程实现重复,因此nextjs基于nodejs上对服务器端渲染需求做了一个封装,提供许多的现成的方法去实现ssr,方便上手,
getInitialProps、getServerSideProps、getStaticProps 三者有什么异同?
都是关于需要获取数据来生成的页面 getStaticProps是在构建时生效的,getServerSideProps,getInitialProps是在请求时候生效的。换句话说只要getServerSideProps和getInitialProps的页面都不会构建成静态文件。 getServerSideProps和getInitialProps的不同则是如果是通过router跳转到该页面,getInitalProps是在客户端执行逻辑,getSeverSideProps反之。
Nextjs 的 路由机制是怎样的?
文件式路由:Next.js 有一个基于页面概念的基于文件系统的路由器。当一个文件被添加到 pages 目录中时,它会自动作为一个路径可用
CMS 是什么?在实际的业务项目中,我们为什么需要它?
cms是内容管理系统,是一种位于WEB前端和后端办公系统或流程之间的软件系统。因为有了这样一个系统,既可方便项目在上线后更好管理项目里面带的内容。减少许多开发工作量。
对于多个主题的效果,我们可以通过什么渠道实现?
通过设置相关到主题的颜色的变量,在sass或less中定义多套主题(或者开放设置,让用户对相关颜色进行自我鉴定),然后在各个标签上添加自定义主题属性(data-theme),然后当监听到主题切换事件发生时,改变定义的主题属性,整个页面就会根据不同主题定义的颜色变量变更颜色。
个人总结
两个小时的直播课不可能一下就把技术教会,趁明后两天没课,继续加强对nextjs的学习