关于render函数

在看尚硅谷的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函数关于render函数


本文参考:

render: h => h(App) $mount 什么意思 

关于Vue中 render: h => h(App) 的具体含义的理解

Vue render函数

上一篇:私有IP丢失造成Oracle 12C RAC集群节点不能启动


下一篇:通俗理解.NET 6 Minimal APIs