vue-cli脚手架使用runtime-only和runtime + compiler的两种选择
runtime-only编译过程:render -> Virtual DOM -> UI
runtime + compiler 编译过程: template -> AST(抽象语法树) -> render -> Virtual DOM -> UI
它俩的区别就在于一个有编译过程,一个无编译过程,所以runtme-only的代码量少,体积更小
脚手架初始化时webpack会安装一些loader和plugin,其中就有vue-loader和vue-template-compiler。vue-loader作用是导入.vue文件,也就是将一些组件导入,而vue-template-compiler的作用是将.vue文件进行编译,从而将它编译成不包含模板。
所以runtime-compiler和runtime-only使用.vue文件最终编译的都是不带模板的,都可以直接用render函数到虚拟DOM到UI。可能唯一的区别在于,runtime-compiler可以在像main.js这样的文件中直接用对象创建一个组件,然后用render函数或者components注册渲染到UI上,而runtime-only没有编译过程不能这么干,只能用.vue文件组件化开发。