- 在Vue的官方安装说明上时这样讲的,完整版:同时包含编译器和运行时的版本;运行时:用来创建 Vue 实例、渲染并处理虚拟DOM等的代码。基本上就是除去编译器的其它一切。即完整版与非完整版之间差了一个编译器。
- 编译器是什么呢,如果你需要在客户端编译模板 (比如传入一个字符串给 template 选项,或挂载到一个元素上并以其 DOM 内部的 HTML 作为模板),就将需要加上编译器。还是以例子说明会比较好。
new Vue({
template: ' <div >
{{n}}
<button @click="add">+1</button>
</div>'
})
如果使用非完整版,页面是不会渲染的,如果要想成功渲染需要编译器来发挥作用,编译器会通过其一系列原理成功的将其渲染在页面,但正因为有了这个编译器,非完整版本相比完整版体积要小大约 30%,或许我们会有一些疑问非完整版没有这个编译器,我们该怎么来创建元素渲染在页面呢,vue的创建者创建这个非完整版的时候就有了主意,他将我们需要创建的元素写在render函数里用h来创建。非完整版我们可以这样写
new Vue({
render (h) {
return h('div', [this.n,h('button',{on:{click:this.add}},+1)])
}
})
总结