Runtime-Compiler和Runtime-only的区别
区别在于main.js
对比区别在于Vue实例中,render
使用了一个箭头函数,原型是createElement(),用于替换<div class="id">
内部函数createElement()
:
1 | <!--真实开发不会这么写,但是需要了解原理--> |
Vue的编译渲染过程
template
–> ast
(abstract syntax tree 抽象语法树) –> render函数
–> VDOM
–> DOM
- 先将template解析(parse)成抽象语法树(ast)
- 将ast编译(compiler)成render函数
- 将render函数渲染(render)成虚拟DOM
- 最后将
虚拟DOM 渲染成真实DOM
runtime-compiler的步骤
template
–> ast
–> render函数
–> VDOM
–> DOM
runtime-only的步骤
render函数
–> VDOM
–> DOM
对比两者的区别
(1) 首先从代码的完整性来看,runtime-only版本比runtime-compiler版本少了一个API – Vue.compile
,这个API是执行前两步,将一个模板字符串编译成 render 函数。因此,runtime-only是无法使用template
选项的。
(2) 由于runtime-only少了相应的功能,使得该版本的体积更小。
runtime-compiler | runtime-only |
---|---|
体积大 | 体积小 |
有Vue.compile API |
无Vue.compile API |
可以使用template模板 、render函数 渲染 |
只可使用render 函数渲染 |
开发项目选择哪种呢
在实际开发项目中,我们偏向使用runtime-only
,渲染性能更高,体积小。我们不需要担心template组件无法渲染,因为在开发项目时,我们安装过vue-template-compiler
,可以利用它去渲染。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 SimpleLife!