什么是SSR
SSR
是Server Side Render
简称,叫服务端渲染
在客户端请求服务器的时候,服务器到数据库中获取到相关的数据,并且在服务器内部将Vue
组件渲染成HTML
,并且将数据、HTML
一并返回给客户端,这个在服务器将数据和组件转化为HTML
的过程,叫做服务端渲染SSR
而当客户端拿到服务器渲染的HTML
和数据之后,由于数据已经有了,客户端不需要再一次请求数据,而只需要将数据同步到组件或者Vuex
内部即可。除了数据以外,HTML
也结构已经有了,客户端在渲染组件的时候,也只需要将HTML
的DOM
节点映射到Virtual DOM
即可,不需要重新创建DOM
节点,这个将数据和HTML
同步的过程,又叫做客户端激活
使用SSR的好处
其实就是有利于爬虫来爬你的页面,因为部分页面爬虫是不支持执行JavaScript
的,这种不支持执行JavaScript
的爬虫抓取到的非SSR
的页面会是一个空的HTML
页面,而有了SSR
以后,这些爬虫就可以获取到完整的HTML
结构的数据,进而收录到搜索引擎中。
相对于客户端渲染,服务端渲染在浏览器请求URL
之后已经得到了一个带有数据的HTML
文本,浏览器只需要解析HTML
,直接构建DOM
树就可以。而客户端渲染,需要先得到一个空的HTML
页面,这个时候页面已经进入白屏,之后还需要经过加载并执行JavaScript
、请求后端服务器获取数据、JavaScript
渲染页面几个过程才可以看到最后的页面。特别是在复杂应用中,由于需要加载 JavaScript
脚本,越是复杂的应用,需要加载的 JavaScript
脚本就越多、越大,这会导致应用的首屏加载时间非常长,进而降低了体验感。