在vue-cli脚手架中的main.js中,模板渲染没有使用teplate进行渲染,而是使用render进行渲染,这是为什么呢?render函数有什么作用吗?
实例展示:
解释:
- 没有使用template是因为使用的是
vue.runtime.esm.js
这个残缺版的文件,没有使用完整版(vue.js)
,残缺版的文件没有模板解析这个功能,但是由于他体积较小,运行较快,所以vue-cli
官方选择特作为默认的vue文件进行引入。 - render函数的作用就是将App组件解析到模板中,使用render方法,就可以代替
components + template
.
方法剖析:
render: h => h(App)
对于这句代码,我们来彻底理解一下
绿色箭头是vue/cli自动生成的,红色箭头是完整写法。
render是一个属性,属性值是一个函数,函数的参数又是一个函数,他可以创造一个标签,并且为这个标签添加内容。如图片中,创造了一个
标签,并且内容为‘’你好啊‘’。函数中的参数可以创造一个标签所以替代了components
,render
这个属性可以渲染模板,于是替代了template.
最后:使用es6语法简写形式,以及箭头函数的用法。就演变为默认样式