这是我参与「第五届青训营 」笔记创作活动的第8天
我将从以下几点去分享对于观看完“Next.js实战项目”相关课程的收获,同时也分享一下自己学习的一些重要的知识点:
- 什么是Next.js?
- Next.js有什么优劣处吗?
首先,是关于什么是Next.js。Next.js是react进行服务端渲染的一个工具,默认以根目录下的pages为渲染路由。在目前国内的一些互联网公司里面,偏向大厂的使用程度会更深一点。从对于Next.js的解释中可以发现,服务端渲染,顾名思义,就是在服务器上就把网页渲染好了,在用户请求的时候,直接发给用户已经被渲染好的页面。
有关于Next.js的好处和劣势,我觉得可以从以下去对比:
好处就是:1. 更利于SEO,便于搜索引擎收录。因为大多数爬虫只会爬源码,不会爬脚本,当服务端返回渲染好的数据后爬虫便能直接爬取了。
2. 利于首屏加载。这个简单,服务端发过来的就是渲染好的,客户端就省事了,加载也就快了。
劣势就是:1. 服务器的压力大了。 2. 对开发人员要求也高了(这已经不属纯正血统的前端范畴了,因为要成功部署的话,你还不得不心甘情愿地去学点服务器知识、Linux运维、nginx部署等)
特别值得注意的是:当服务端渲染时,服务端是没有window、document对象的,直接调用会报错。想用这俩对象的话最好放在didAmount周期函数里,等组件挂载后再调用,另外,Nextjs自带的服务器专注于处理ssr部分,但后端往往还需要处理文件、连接数据库等功能,此时还需要借助其他的node服务器,我这选用了koa2,然后让nextjs作为koa的一个专门负责ssr的中间件。
以上则是我个人的一点学习心得,欢迎各位优秀的开发者批评指正