理顺8个版本vue的区别(小结)


Posted in Javascript onSeptember 17, 2018

一共8个版本的vue

理顺8个版本vue的区别(小结)

术语

  • 完整版:同时包含编译器和运行时的版本。
  • 编译器:用来将模板字符串编译成为 JavaScript 渲染函数的代码。
  • 运行时:用来创建 Vue 实例、渲染并处理虚拟 DOM 等的代码。基本上就是除去编译器的其它一切。
  • UMD:UMD 版本可以通过 <script> 标签直接用在浏览器中。jsDelivr CDN 的 https://cdn.jsdelivr.net/npm/vue 默认文件就是运行时 + 编译器的 UMD 版本 (vue.js)。
  • CommonJS:CommonJS 版本用来配合老的打包工具比如 Browserify 或 webpack 1。这些打包工具的默认文件 (pkg.main) 是只包含运行时的 CommonJS 版本 (vue.runtime.common.js)。
  • ES Module:ES module 版本用来配合现代打包工具比如 webpack 2 或 Rollup。这些打包工具的默认文件 (pkg.module) 是只包含运行时的 ES Module 版本 (vue.runtime.esm.js)。

重点:

如果你需要在客户端编译模板 (比如传入一个字符串给 template 选项,或挂载到一个元素上并以其 DOM 内部的 HTML 作为模板),就将需要加上编译器

通俗来说,就是runtime版本是无法对template进行解析的

一共8个vue版本,都是用在什么情况下的?

  1. 默认会用的哪个vue版本,vue-cli里用的哪个版本?
  2. 如何指定使用哪个版本的vue?

不急,从2个维度去理解这8个版本。

  • 根据是否需要编译器分为: 运行时版本 和 完整版
  • 根据这个vue代码用在什么地方: 分为UMD / CommonJS / ES Module

【运行时版本】和【完整版】的区别: 用不用编译?

  • 完整版: 包括编译器和运行时的版本
  • 编译器: vue里用的<template></template>语法是需要被编译的
  • 运行时: 用来创建Vue实例、渲染、处理虚拟Dom,可以理解为除了编译器剩下的代码都属于运行时

如果你需要使用template的语法,就需要编译器,那么就要使用完整版

用了.vue文件的大多数情况下,你可以用运行时版本

当你使用vue-loader或vueify的时候, *.vue文件内部会预编译成JS,所以你在最终打好的包里,

实际上是不需要编译器的,所以这种情况,应该用运行时版本,毕竟运行时版本的体积比完整版要小30%

如果我一定要用完整版的呢? 如何选择版本呢?

你需要在webpack里配置alias

module.exports = {
 // ...
 resolve: {
  alias: {
   'vue$': 'vue/dist/vue.esm.js' // 用 webpack 1 时需用 'vue/dist/vue.common.js'
  }
 }
}

UMD / CommonJS / ES Module 的区别: 你的vue用在什么地方?

  • 当你通过script标签来引用vue源码时,用UMD版本
  • 当你通过低版本的打包工具,比如webpack1,用CommonJS版本
  • 当你通过现代打包工具比如 webpack 2 或 Rollup,用ES Module版本

其他

  • vue源码会根据process.env.NODE_ENV来判断是用生产还是开发环境的代码
  • webpack里可以有自带的 new webpack.DefinePlugin()来设置process.env.NODE_ENV

类似这样

new webpack.DefinePlugin({
   'process.env': env
  }),

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JS Range HTML文档/文字内容选中、库及应用介绍
May 12 Javascript
页面调用单个swf文件,嵌套出多个方法。
Nov 21 Javascript
js创建子窗口并且回传值示例代码
Jul 02 Javascript
JS实现时间格式化的方式汇总
Oct 16 Javascript
json中换行符的处理方法示例介绍
Jun 10 Javascript
点击button获取text内容并改变样式的js实现
Sep 09 Javascript
jQuery针对input的class属性写了多个值情况下的选择方法
Jun 03 Javascript
jQuery中text() val()和html()的区别实例详解
Jun 28 Javascript
jquery实现提示语淡入效果
May 05 jQuery
bing Map 在vue项目中的使用详解
Apr 09 Javascript
webpack4 SCSS提取和懒加载的示例
Sep 03 Javascript
小程序scroll-view安卓机隐藏横向滚动条的实现详解
May 16 Javascript
vue.js编译时给生成的文件增加版本号
Sep 17 #Javascript
详解关于Vue版本不匹配问题(Vue packages version mismatch)
Sep 17 #Javascript
详解如何解决Vue和vue-template-compiler版本之间的问题
Sep 17 #Javascript
微信小程序中this.data与this.setData的区别详解
Sep 17 #Javascript
Puppet的一些技巧
Sep 17 #Javascript
详解JavaScript添加给定的标签选项
Sep 17 #Javascript
Element-ui tree组件自定义节点使用方法代码详解
Sep 17 #Javascript
You might like
PHP网站备份程序代码分享
2011/06/10 PHP
在PHP程序中使用Rust扩展的方法
2015/07/03 PHP
PHP如何获取当前主机、域名、网址、路径、端口等参数
2017/06/09 PHP
js获取div高度的代码
2008/08/09 Javascript
5个最佳的Javascript日期处理类库分享
2012/04/15 Javascript
js转化毫秒为时间格式代码
2014/04/10 Javascript
实例讲解JQuery中this和$(this)区别
2014/12/08 Javascript
jQuery中animate()的使用方法及解决$(”body“).animate({“scrollTop”:top})不被Firefox支持的问题
2017/04/04 jQuery
JavaScript对象_动力节点Java学院整理
2017/06/23 Javascript
薪资那么高的Web前端必看书单
2017/10/13 Javascript
vue中 this.$set的用法详解
2019/09/06 Javascript
微信小程序实现轨迹回放的示例代码
2019/12/13 Javascript
js实现点击按钮随机生成背景颜色
2020/09/05 Javascript
[02:46]2014DOTA2国际邀请赛 选手为你解读比赛MVP充满梦想
2014/07/09 DOTA
使用python删除nginx缓存文件示例(python文件操作)
2014/03/26 Python
python进阶教程之异常处理
2014/08/30 Python
利用Django框架中select_related和prefetch_related函数对数据库查询优化
2015/04/01 Python
讲解Python中fileno()方法的使用
2015/05/24 Python
python类继承用法实例分析
2015/05/27 Python
Python3 Random模块代码详解
2017/12/04 Python
python读取csv文件并把文件放入一个list中的实例讲解
2018/04/27 Python
使用pandas模块读取csv文件和excel表格,并用matplotlib画图的方法
2018/06/22 Python
Python生成rsa密钥对操作示例
2019/04/26 Python
Python异步操作MySQL示例【使用aiomysql】
2019/05/16 Python
Python3+Pycharm+PyQt5环境搭建步骤图文详解
2019/05/29 Python
详解python编译器和解释器的区别
2019/06/24 Python
python实现简单银行管理系统
2019/10/25 Python
使用Python打造一款间谍程序的流程分析
2020/02/21 Python
HTML5之SVG 2D入门2—图形绘制(基本形状)介绍及使用
2013/01/30 HTML / CSS
sort命令的作用和用法
2013/08/25 面试题
中学生学习生活的自我评价
2013/10/26 职场文书
销售岗位职责范本
2014/06/12 职场文书
社区党建工作汇报材料
2014/08/14 职场文书
校长师德表现自我评价
2015/03/05 职场文书
中学生清明节演讲稿
2015/03/18 职场文书
2015年音乐教师个人工作总结
2015/05/20 职场文书