一共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版本,都是用在什么情况下的?
- 默认会用的哪个vue版本,vue-cli里用的哪个版本?
- 如何指定使用哪个版本的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'
}
}
}