当前位置: 移动技术网 > IT编程>开发语言>JavaScript > 对 Vue-SSR的理解和使用场景

对 Vue-SSR的理解和使用场景

2020年07月17日  | 移动技术网IT编程  | 我要评论

定义

SSR解决方案,后端渲染出完整的dom结构返回,前端拿到的内容包括首屏和spa结构,应用激活后按照spa方式运行,这种页面渲染方式被称为服务端渲染(server side render)

官网上对此ssr的定义

Vue.js 是构建客户端应用程序的框架。默认情况下,可以在浏览器中输出 Vue 组件,进行生成 DOM 和操作 DOM。然而,也可以将同一个组件渲染为服务器端的 HTML 字符串,将它们直接发送到浏览器,最后将这些静态标记"激活"为客户端上完全可交互的应用程序。
服务器渲染的 Vue.js 应用程序也可以被认为是"同构"或"通用",因为应用程序的大部分代码都可以在服务端和客户端运行。

通俗解释

vue的组件是基于vnode的,整个html结构用js的vnode对象树来表达,那么服务端可以通过解析js对象树,在服务端提前生成具有实际表达作用的html字符串,在客户端(浏览器中)每次数据变化的时候通过新旧vnode对象树的对比用diff算法(vue diff算法不了解的可以去搜索一下)去寻找更新最小最优的变化集合,然后再去更新实际的dom。

关键点

代码可以在客户端运行,也可以在服务端运行,服务端渲染通俗来说就是先在服务端运行,在服务端生成html结构并返回给客户端,接下里继续由客户端代码去完成交互。

解决的问题

  • seo:搜索引擎优先爬取页面HTML结构,使用ssr时,服务端已经生成了和业务想关联的HTML,有利于seo
  • 首屏呈现:用户无需等待页面所有js加载完成就可以看到页面视图(压力来到了服务器,所以需要权衡哪些用服务端渲染,哪些交给客户端)

缺点

  • 复杂度
  • 库的支持性,代码兼容
  • 性能问题,每个请求都是n个实例的创建,不然会污染,消耗会变得很大
    • 缓存 node serve 、 nginx判断当前用户有没有过期,如果没过期的话就缓存,用刚刚的结果。
    • 降级:监控cpu、内存占用过多,就spa,返回单个的壳
  • 服务器负载变大,相对于前后端分离务器只需要提供静态资源来说,服务器负载更大,所以要慎重使用(比如一整套图表页面,相对于服务端渲染,可能用户不会在乎初始加载的前几秒,可以交由客户端使用类似于骨架屏,或者懒加载之类的提升用户体验。)

使用场景(什么时候用)

  • seo、首屏速度
    • 如果没有必要性的话,可以用预渲染插件(例如:pre-renderer)
  • 已经存在的项目,改造起来工程量比较大
    • 1.考虑用爬虫工具,比如puppeteer,让它直接从spa项目中爬出结果
    • 2.判断当前的请求是不是爬虫,浏览器引擎;如果是内部用户的花直接把spa给它
  • 全新项目 。用框架级别的例如: nuxt.js

本文地址:https://blog.csdn.net/dandan1924/article/details/107371170

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网