next.js简介
next.js 是一个基于react 的服务端渲染的框架
什么是服务端渲染? 和客户端渲染有什么区别?
- 服务端渲染,是指页面的渲染和生成由服务器来完成,并将渲染好的页面返回客户端。
- 客户端渲染是页面的生成和数据的渲染过程是在客户端(浏览器或 APP )完成。
为什么使用服务端渲染?(搜索引擎优化)
解决SEO问题(由于传统的搜索引擎只会从 HTML 中抓取数据,导致前端渲染的页面无法被抓取,前后端分离的架构,无法提供搜索引擎可收录的页面,需要搜索引擎蜘蛛拥有执行javascript能力才行,可现实是大部分的搜索引擎都不支持。搜索引擎的基础爬虫的原理就是抓取你的url,然后获取你的html源代码并解析。 而你的页面通常用了vue等js的数据绑定机制来展示页面数据,爬虫获取到的html是你的模型页面而不是最终数据的渲染页面,所以说用js来渲染数据对seo并不友好。
解决首屏白屏的问题(前端渲染常使用的 SPA 会把所有 JS 整体打包,无法忽视的问题就是文件太大,导致渲染前等待很长时间。特别是网速差的时候,让用户等待白屏结束并非一个很好的体验)
概念分析
后端渲染:指传统的 ASP、Java 或 PHP 的渲染机制;
前端渲染:指使用 JS 来渲染页面大部分内容,代表是现在流行的 SPA 单页面应用;
同构渲染:指前后端共用 JS,首次渲染时使用 Node.js 来直出 HTML。一般来说同构渲染是介于前后端中的共有部分。
为什么说next.js 做SEO 的?
因为next.js 是做服务端渲染的。seo本质是一个服务器向另一个服务器发起请求,解析请求内容。但一般来说搜索引擎是不回去执行请求到的js的。也就是说,如果一个单页应用,html在服务器端还没有渲染部分数据数据,在浏览器才渲染出数据,而搜索引擎请求到的html是没有渲染数据的。 这样就很不利于内容被搜索引擎搜索到。 所以服务端渲染就是尽量在服务器发送到浏览器前页面上就是有数据的。这样有利于搜索引擎的爬虫。
next.js 服务端渲染经历了哪些的过程了?
。。。
(未完待续。。。)