runtime-compiler和runtime-only

540 阅读1分钟

1 runtime-compiler和runtime-only的区别

我们在创建vue-cli的时候,会遇到如下图的选项。

image.png

可以看到在vue实例中,runtime-compiler创建的参数是template和components,而runtime-only创建的参数是render函数。

image.png

2 组件渲染过程

2.1 runtime-compiler

runtime-compiler版本下,组件渲染的过程为 template -> ast -> render -> vdom -> DOM。其中:ast为抽象语法树,vdom为虚拟DOM。 在这个过程中template会通过vue-template-complier转换为render函数。

2.1 runtime-only

runtime-only版本下,组件渲染的过程为render: (h) => h, -> createElement,runtime-only版本是运行时不做编译,编译是在离线的时候做(打包时候进行编译),性能更高。

3 使用选择

  • 简单来说,如果在之后的开发中使用template,就选择runtime-compiler。如果在之后的开发中,使用的.vue文件开发可以选择runtime-only。
  • runtime-only会比runtime-compiler的版本重量轻约30%,性能更高。所以尽可能的使用runtime-only版本。