Runtime Only VS Runtime+Compil
通常我们利⽤ vue-cli 去初始化我们的 Vue.js 项⽬的时候会询问我们⽤ Runtime Only 版本的还是
Runtime+Compiler 版本。 下⾯我们来对⽐这两个版本。
Runtime Only
我们在使⽤ Runtime Only 版本的 Vue.js 的时候, 通常需要借助如 webpack 的 vue-loader ⼯具把 .vue ⽂
件编译成 JavaScript, 因为是在编译阶段做的, 所以它只包含运⾏时的 Vue.js 代码, 因此代码体积也会
更轻量。
Runtime+Compiler
我们如果没有对代码做预编译, 但⼜使⽤了 Vue 的 template 属性并传⼊⼀个字符串, 则需要在客户端
编译模板, 如下所⽰:
new Vue({ template: '<div>{{ hi }}</div>' }) // 这种情况不需要 new Vue({ render(h) { return h('div', this.hi) } })
因为在 Vue.js 2.0 中, 最终渲染都是通过 render 函数, 如果写 template 属性, 则需要编译成
render 函数, 那么这个编译过程会发⽣运⾏时, 所以需要带有编译器的版本。
很显然, 这个编译过程对性能会有⼀定损耗, 所以通常我们更推荐使⽤ Runtime-Only 的 Vue.js。