一、前言

C端项目重构成首屏服务端渲染(SSR:serve side render),对于重构成SSR,redux不是必须的。本文以vue为栗子的项目。

二、什么是服务端渲染

将组件或页面通过服务器生成html字符串,再发送到浏览器,最后将静态标记"混合"为客户端上完全交互的应用程序。

我以weekly周报的登陆页面为例

登陆页没有使用服务端渲染,请求到login页面,返回的body为空,之后执行js将html结构注入到body中,结合css显示出来

我的另外一个vue的nuxt写的ssr渲染的songEagle,首页返回的body是带有html的。

三、SSR渲染和客户端渲染的区别

1、SSR渲染的优势:

(1)更利于SEO;

(2)更利于首屏渲染(特别是对于缓慢的网络情况或运行缓慢的设备,内容更快到达)

2、SSR渲染的缺点:

(1)服务器压力大,考虑服务器端负载。

(2)开发条件受限,只会执行到ComponentMount之前的生命周期钩子,引用第三方库不可用其他生命周期钩子,引用库选择产生很大的限制。

(3)学习成本增大,需要学习构建设置和部署的更多要求。

四、耗时比较

1、数据请求

由服务端请求首屏数据,而不是客户端请求首屏数据,这是“快”的一个主要原因。服务端在内网进行请求,数据响应速度快。客户端在不同网络环境进行数据请求,且外网http请求开销大,导致时间差。

2、HTML渲染

服务端渲染是先向后端服务器请求数据,然后生成完整首屏html返回给浏览器;

客户端渲染是等js代码下载、加载、解析完成后再请求数据渲染,等待的过程页面是什么都没有的,就是用户看到的白屏。

就是服务端渲染不需要等待js代码下载完成并请求数据,就可以返回一个已有完整数据的首屏页面。

五、原理

相对于SPA,vue增加了一些扩展工具,首先我们来看一下比较重要的一个工具vue-server-renderer,从名字就知道是在服务端渲染时候调用的

具体实现:

1、创建一个空项目 mkdir vuessr && cd vuessr

2、运行 npm init 进行初始化

3、安装我们需要的依赖 cnpm install vue vue-server-renderer --save

4、创建index.js代码如下:

// 第 1 步:创建一个 Vue 实例
const Vue = require('vue')
const app = new Vue({template: `<div>Hello World</div>`
})// 第 2 步:创建一个 renderer
const renderer = require('vue-server-renderer').createRenderer()// 第 3 步:将 Vue 实例渲染为 HTML
renderer.renderToString(app, (err, html) => {if (err) throw errconsole.log(html)// => <div data-server-rendered="true">Hello World</div>
})

5、运行 node index.js 可以看到在控制台输出了

  <div data-server-rendered="true">Hello World</div>

六、总结

什么是SSR?将组件或页面通过服务器生成html字符串,再发送到浏览器,最后将静态标记"混合"为客户端上完全交互的应用程序。SSR有更利于SEO和首屏渲染,同时也有缺点:服务器压力大,开发条件受限,只会执行ComponentMount之前的生命周期,第三库使用受限,学习成本大。原理是靠vue-server-renderer这个库的createRenderer(),然后调用rendererToString()。

浅析SSR(服务端渲染)和SPA(客户端渲染)相关推荐

  1. 【SSR服务端渲染+CSR客户端渲染+post请求+get请求+总结】三种开启服务器的方法总结

    SSR服务端渲染 get请求方式 get.html文件 <form action="http://10.9.46.253:4002" target="_self&q ...

  2. SSR 服务端渲染与 CSR 客户端渲染

    SSR 服务端渲染与 CSR 客户端渲染 SSR 服务端渲染 CSR 客户端渲染 本文要点: 介绍 SSR 服务端渲染概念.优点.缺点.案例及常用框架. 介绍 CSR 服务端渲染概念.优点.缺点. S ...

  3. NodeJS SSR服务端渲染:公共代码区分客户端和服务端

    SSR服务端渲染(英语:server side render)指一般情况下,一个web页面的数据渲染完全由客户端或者浏览器端来完成.先从服务器请求,然后到页面:再通过AJAX请求到页面数据并把相应的数 ...

  4. markdownpad2 html渲染组件出错_「万字长文」一文吃透React SSR服务端同构渲染

    写在前面 前段时间一直在研究 react ssr技术,然后写了一个完整的 ssr开发骨架.今天写文,主要是把我的研究成果的精华内容整理落地,另外通过再次梳理希望发现更多优化的地方,也希望可以让更多的人 ...

  5. react native text换行_基于React+Koa实现React SSR服务端渲染

    React Server-Side Rendering 其实这个概念很早之前就有了解了,出于没有应用场景原因,之前一直都只停留在了解API的层面,未曾去实践.快到周末闲来无事,自己复盘了下之前做的新商 ...

  6. SSR -- 服务端渲染基础

    前言 笔记来源:拉勾教育 大前端高薪训练营 阅读建议:建议通过左侧导航栏进行阅读 服务端渲染基础 基本概述 随着前端技术栈和工具链的迭代成熟,前端工程化.模块化也已成为了当下的主流技术方案,在这波前端 ...

  7. react ssr php,一文吃透 React SSR 服务端渲染和同构原理

    全网最完整的 React SSR 同构技术原理解析与实践,从零开始手把手带你打造自己的同构应用开发骨架,帮助大家彻底深入理解服务端渲染及底层实现原理,学完本课程,你也可以打造自己的同构框架. 写在前面 ...

  8. React SSR: 基于 express 自构建 SSR 服务端渲染

    React SSR: 基于 express 自构建 SSR 服务端渲染 文章目录 React SSR: 基于 express 自构建 SSR 服务端渲染 完整代码示例 前情提要 构建 CSR 项目 项 ...

  9. Vue2系列教程——SSR服务端渲染

    Vue2 SSR服务端渲染 概念:ssr(server side render)服务端渲染 优点: 有利于搜索引擎的SEO操作,由于搜索引擎爬取的是完全渲染出来的页面. 对于网络慢或运行慢的设备,可提 ...

最新文章

  1. java转python
  2. 【目标检测系列】CNN中的目标多尺度处理方法
  3. 学习scorllview
  4. SharePoint 2007 做Migration后用户处理
  5. OrionX Panel for Mac(ps摄影自动化工作流插件)支持ps2021 big sur11 汉化版
  6. 数据结构:二叉排序树
  7. 求不小于N且二进制串包含K个1的最小的数字
  8. 计算机可爱的企鹅教案,《可爱的企鹅》教学设计
  9. OEA ORM 框架中的冗余属性设计
  10. kernel的initcall函数
  11. ILSpy查看dll内容
  12. 【人脸姿态】2D人脸姿态估计的两种方式:solvePnP与3DMM参数
  13. 阿里云 Aliplayer高级功能介绍(九):自动播放体验...
  14. 电信光纤猫虚拟服务器设置方法,电信光纤无线路由器(光猫)的设置方法
  15. 听羊哥聊如何学习一门新技术
  16. Region Proposal by Guided Anchoring
  17. 金蝶显示服务器许可,金蝶K3服务器分配许可数已经全部使用,无法建立新的连接怎么办...
  18. Flash Tech: this.el_.vjs_getProperty is not a function video.js
  19. 立波软件管家:方便管理安卓手机应用、应用搬家、快速摇摇卸载应用、应用备份(souapp.com搜应用网推荐)
  20. WIN10系统如何彻底关闭防火墙

热门文章

  1. 基于Matlab的图片平滑和锐化处理
  2. 【SAP】用户维护-加解锁和密码初始化
  3. Taro框架-微信小程序-内嵌h5页面
  4. 怎么使用迅捷PDF转换器转换视频?
  5. 计算人类基因组外显子区域长度
  6. python数据分析报告的格式范文_数据分析报告格式
  7. 如何在Microsoft Access 2010创建IDAutomation条形码(视频教程)
  8. 研究光源宽度对干涉条纹可见度的影响(matlab仿真)
  9. toString()及重写的作用与应用
  10. 高盛表示将放弃建立加密货币交易部门的计划