本质和不同
服务端渲染和客户端渲染本质都是字符串拼接;
服务端渲染:在客户端发起请求后,在服务端把数据查询的结果嵌套在html,然后把整个包发给客户端进行渲染,这当中只会有一次请求。
客户端渲染:在客户端发起请求后,服务端将html页面返回,html中还有js执行文件和css样式文件,在页面返回完成时,再执行js执行文件,从服务端获取数据资源,渲染到html页面上,这当中,至少会有两个请求。
以前,没有前端这个概念的时候,一般都是以服务端渲染为主导;而现在,随着浏览器和技术的不断发展,基于用户体验为优先考虑因素,主要采用服务端渲染和客户端渲染相结合的设计方式。
优缺点
服务端渲染,有利于seo优化,减少网络请求,也减少了网络请求携带的流量开销;缺点也很明显,因为所有的数据渲染逻辑都在服务端处理,一旦数据返回格式需要改动,前端和后端文件都需要做出相应改动。
客户端渲染,不利于seo优化(虽然可以设置html的meta标签https://blog.csdn.net/alokka/article/details/78814674),同时,增加了网络请求和流量开销(因为服务端返回的html中,还有很多需要下载的css和js文件;因此,一般来说,现在的js和css文件,都会用压缩合并的代码,减少网络请求次数);优点则是:有利于用户体验,可以完成一切操作,而不需要改动服务端的内容。