在vue脚手架新建vue项目vue init webpack+项目名称的时候,会有很多配置选项,其中有一个是询问要用Runtime Only还是Runtime+Compiler,虽然后者介绍是most use,但是相对于后者,runtime only不论是性能还是占用内存大小都优于runtime+compiler。而这两个方式创建的vue项目只在./src/main.js里有区别
这是runtime only的
这是runtime+compiler的
runtime+compiler中new vue中传递的参数会吧template中的内容替换掉el中的内容,此时vue需要经过template->ast->render->virtual dom(虚拟dom)->UI dom 几个过程,而runtime only省略了前两个步骤,所以此时vue源代码中不需要写前两个步骤的函数,并且由于省略步骤,编译也会更快
rander对象
rander对象为一个函数,函数返回值为一个字符串,一个对象和一个数组,字符串为标签名,对象为标签属性,数组为标签内容
也可以直接传入一个组件对象,这就是runtime only中的内容
render: function(h){
return h('h2',{class:'box'},['hello world']);
}
<h2 class="box">hello world</h2>
上面的函数解析完就是一个h2标签