Vue 有两个不同的版本可供使用,分别是 Vue 完整版(vue.js)和 Vue 运行时版本(vue.runtime.js)
- 完整版:同时包含编译器和运行时的版本。
- 编译器:用来将模板字符串编译成为 JavaScript 渲染函数的代码。
- 运行时:用来创建 Vue 实例、渲染并处理虚拟 DOM 等的代码。基本上就是除去编译器的其它一切。
简单来说,完整版可以让模板在客户端被编译,而运行时版本不可以。
// 需要编译器
new Vue({
template: '<div>{{ hi }}</div>'
})
// 不需要编译器
new Vue({
render (h) {
return h('div', this.hi)
}
})
因为运行时版本不包含编译器,所以体积上比完整版更小。而编译器的工作可以在构建由vue-loader完成,在最终打好的包里实际上是不需要编译器的,因此只用运行时版本即可。
在webpack或者@vue/cli配置时,默认配置就是运行时版本。如果想使用完整版,除了在cdn引入Vue的时候通过url指定版本,还可以在配置webpack时加入alias:
module.exports = {
// ...
resolve: {
alias: {
'vue$': 'vue/dist/vue.esm.js' // 用 webpack 1 时需用 'vue/dist/vue.common.js'
}
}
}