https://mp.weixin.qq.com/s/v1c69bJ5PxGcqt-ZU4FVXw

https://juejin.im/entry/590ca74b2f301e006c10465f

https://www.zhihu.com/question/32524504?sort=created

vue2.0才推出vue 服务端渲染,用于提升首屏渲染速度,不过对于海量PV级的业务,直出模板的渲染效率直接影响服务端的压力

前后端分离的方式不利于网站SEO,有SEO需求的页面迫切需要服务端渲染。

node框架选型(主流):hapi、express、koa。

vue和react可以进行前后端同构,一样的逻辑不用写两份。

当前常用的模板渲染方案可以归结成两类:

  • a类:string-based (基于字符串拼接),传统,输出的就是字符串、所以可以用于生成ini、css、shell等其他文件,而不一定要是html,对于以输出页面为主的服务,这种模式还是挺不错的。

  • b类:virtual-dom-based(基于虚拟dom对象),新潮,基本上不考虑输出HTML/XML以外的东西。dom-base的模板引擎可以实现虚拟dom之类的东西,在数据变化的时候,实现最少的更新操作,而不像string-base的引擎,数据发生变化就要全部重新生成一大堆的字符串。

vue ssr 的模板是b类。

string-based模板渲染

比较好用的前端模板引擎是:https://github.com/ecomfe/etpl 和 https://aui.github.io/art-template/zh-cn/index.html

字符串渲染的性能其实也就在后端比较有意义,毕竟每一次渲染都是在消耗服务器资源,但在前端,用户只有一个,几十毫秒的渲染时间跟请求延迟比起来根本不算瓶颈

一个好的模板引擎

具备纯前端环境的解析能力

具备良好的调试能力。可以使用Source Map或其它自定义的手段直接映射回原模板片段,不过现在并没有什么模板引擎实现了这一功能

承担XSS的防范,要求默认转义和特定语法的无转义输出(用于富文本)

片段的复用

支持数据输出时的处理,如filter功能。假如数据处理放到模板渲染前用js逻辑处理,会导致业务逻辑混杂,增加维护的负担

支持动态数据,即依赖运行环境的能力(而不是模板编译的环境)

每个模板实例之间是隔离(如一个页面中多个相同的模板片段id不出现冲突)

vue ssr

这里提供了3个可运行的vue-ssr例子:https://github.com/947133297/ssr/tree/master/vue

以及我学习时的文档备注:http://www.cnblogs.com/hellohello/p/8243400.html

vue ssr的更多相关文章

  1. 转载一篇好理解的vue ssr文章

    转载:原文链接https://www.86886.wang/detail/5b8e6081f03d630ba8725892,谢谢作者的分享 前言 大多数Vue项目要支持SSR应该是为了SEO考虑,毕竟 ...

  2. Vue SSR不可不知的问题

    Vue SSR不可不知的问题 本文主要介绍Vue SSR(vue服务端渲染)的应用场景,开发中容易遇到的一些问题,提升ssr性能的方法,以及ssr的安全性问题. ssr的应用场景 1.SEO需求 SE ...

  3. Vue SSR 配合Java的Javascript引擎j2v8实现服务端渲染2创建Vue2+webpack4项目

    前提 安装好nodejs并配置好环境变量,最好是 node10,https://nodejs.org/en/download/ 参考我之前的文章 debian安装nodejs Yarn &&a ...

  4. Vue SSR常见问题、异常处理以及优化方案

    本文主要介绍Vue SSR(vue服务端渲染)的应用场景,开发中容易遇到的一些问题,提升ssr性能的方法,以及ssr的安全性问题. SSR的应用场景 1.SEO需求 SEO(Search Engine ...

  5. Vue(SPA) WebPack模块化打包、SEO优化(Vue SSR服务端同构直出)、全浏览器兼容完整解决方案

    白驹过隙,时光荏苒 大概去年这个时候写了angular 结合webpack的一套前端方案,今年此时祭出vue2结合webpack的一套前端方案. 明年的这个时候我又是在做什么... 读在最前面: 1. ...

  6. Vue SSR的渲染性能

    一.前言 前端技术年年有新宠,Vue.js 2.0以其轻量级.渐进式.简洁的语法在MVVM框架中脱颖而出,一经推出便很受业界青睐. 为了提高首屏渲染速度 缓存+直出 是必不可少的.在Vue 1× 时代 ...

  7. 理解vue ssr原理,自己搭建简单的ssr框架

    前言 大多数Vue项目要支持SSR应该是为了SEO考虑,毕竟对于WEB应用来说,搜索引擎是一个很大的流量入口.Vue SSR现在已经比较成熟了,但是如果是把一个SPA应用改造成SSR应用,成本还是有些 ...

  8. vue SSR 部署详解

    先用vue cli初始化一个项目吧. 输入命令行开始创建项目: vue create my-vue-ssr 记得不要选PWA,不知为何加了这个玩意儿就报错. 后续选router模式记得选 histor ...

  9. vue ssr 项目改造经历

    vue ssr 项目改造经历 由于工作项目需求,需要将原有的项目改造,vue ssr 没有用到nuxt,因为vue ssr更利于seo,没办法,一个小白的改造经历, 首先说明一下,小白可以借鉴,高手也 ...

随机推荐

  1. 两段代码实现vue路由懒加载

    const Foo = () => import('./Foo.vue') const router = new VueRouter({ routes: [ { path: '/foo', co ...

  2. 2017国家集训队作业Atcoder题目试做

    2017国家集训队作业Atcoder题目试做 虽然远没有达到这个水平,但是据说Atcoder思维难度大,代码难度小,适合我这种不会打字的选手,所以试着做一做 不知道能做几题啊 在完全自己做出来的题前面 ...

  3. 记次浙大月赛 134 - ZOJ Monthly, June 2014

    链接 虽做出的很少,也记录下来,留着以后来补..浙大题目质量还是很高的 B 并查集的一些操作,同类和不同类我是根据到根节点距离的奇偶判断的,删点是直接新加一个点,记得福大月赛也做过类似的,并差集的这类 ...

  4. WGET and CURL

    目录 WGET and CURL 对比 wget curl curl使用示例 WGET and CURL 对比 CURL 和WGET都可以用来下载文件,用法也类似:curl/wget [-option ...

  5. laravel 5.5 oauth2.0 跨域问题解决方案

    一.laravel-Cors 安装 在终端执行安装命令如下: composer require barryvdh/laravel-cors 添加服务提供商 在Laravel配置文件app.php的pr ...

  6. Java-String字符串相关

    字符串String: 封装char[] 字符数组,不可变(因为在底层代码中,值用final关键字修饰) 字符串的字面值: 如果第一次用到一个字符串字面值,会在内存中"字符串常量池" ...

  7. kafka基础二

    kafka生产者工作流程 消息产生分析 1.写入方式: producer采用推(push)模式将消息发布到broker,每条消息都会被追加(append)到分区Partition上,属于顺序写磁盘(顺 ...

  8. PostgresSQL 数组包含@>

    原文链接:http://www.postgresql.org/docs/9.5/static/functions-array.html 9.18. Array Functions and Operat ...

  9. 【原创】微信公众号与HTML 5混合模式揭秘4——jssdk调用微信扫一扫

    微信公众号与HTML 5混合模式揭秘1——如何部署JSSDK 微信公众号与HTML 5混合模式揭秘2——分享手机相册中照片 微信公众号与HTML 5混合模式揭秘3——JSSDK获取地理位置   在JS ...

  10. 第4章 变量、作用域和内存---JS红宝书书摘系列笔记

    一.基本类型和引用类型 ECMAScipt变量可能分为两种数据类型:基本类型和引用类型. 基本类型:指简单的数据段:包括Undefined.Null.Boolean.Number.String:可以操 ...