文件名不同(分别通过 bootcdn
引入如下):
- 完整版:
vue.js
链接:https://cdn.bootcdn.net/ajax/libs/vue/2.6.12/vue.js
- 非完整版(只包含运行时版):
vue.runtime.js
链接:https://cdn.bootcdn.net/ajax/libs/vue/2.6.12/vue.runtime.js
完整版体积更大
完整版比非完整版多一个 compiler
(编译器,用来将模板字符串编译成为 JavaScript
渲染函数的代码),代码体积会比非完整版的大 40% 左右
用法
- 使用完整版,引入
vue.js
时,视图写在HTML
里或template
中
new window.Vue({
el: "#app",
template: `
<div @click="add">{{n}} <button>+1</button></div>
`,
data: {
n: 0
},
methods:{
add(){
this.n += 1
}
}
})
- 使用非完整版,引入
vue.runtime.js
时,视图写在render
中
new window.Vue({
el: "#app",
render(h){
return h("div", [this.n, h("button", {on:{click: this.add}}, "+1")])
},
data: {
n: 0
},
methods:{
add(){
this.n += 1
}
}
})
注意:
以上两个版本,在生产环境下,应使用后缀为 .min.js
的文件
.min.js是压缩出去空格、回车的文件,主要用于开发用
.js是未经压缩的源码,自带的格式更方便用户查看源码
补充:除 bootcdn
以外的其它引入方法
webpack
引入: 默认使用非完整版,使用完整版需要配置alias
@vue/cli
引入: 默认使用非完整版,使用完整版也需要额外配置
总结:
平时最好默认使用代码体积小的非完整版,编译的工作交给 vue-loader
去做
这样选择的优点如下:
- 保证用户体验,用户下载的
JS
文件体积更小,但只支持h
函数。 - 保证开发体验,开发者可直接在
vue
文件里写HTML
标签,而不写h
函数。 - 简化操作流程,
vue-loader
会把vue
文件里的HTML
转为h
函数,这样我们就不需要写太多麻烦的h
函数就可做到和完整版一样的事
h 函数是 vue 中的 createElement 方法