在看尚硅谷的Vue课程的时候,发现他们初始化的项目中main.js中存在一段与自己创建不太一样的代码

//视频中的
new Vue({
  render: h => h(App)
}).$mount('#app')

//自己创建的  vue-cil 版本是2.9.6
new Vue({
  el: '#app',
  router,
  components: { App },
  template: '<App/>'
})

render在这里指的是渲染

这里的代码是使用了ES6 语法,若将其完整写出来则是

render: h => h(App)

//完整写法
render: function(h) {
    return h(App)
  }

而这里的 h 其实是替换了 createElement 这个名称,根据Vue.js 作者 Even You 的回复,这里的h来自术语"hyperscript"

即上面的完整写法又可以写成

render: function (createElement) {
    return createElement(App);
}

这个render函数接收了一个createElement函数作为参数。

简单说,render函数在这里的功能是将createElement(App)中的App所含的模板渲染到页面上去。

这个render函数就是生成一个 VNode节点,render 函数得到这个 VNode 节点之后,返回给 Vue.js 的 mount 函数,渲染成真实 DOM 节点,并挂载到根节点上。

 

借助一位博主的图以方便理解render的一些功能(来源:Vue render函数

python render 参数 render函数_App