如何理解render: h => h(App)

学习vuejs的时候对这句代码不理解

new Vue({
    el: '#app',
    router,
    store,
    i18n,
    render: h => h(App)
})

查找了有关资料,以下为结果

render: h => h(App)

等价于

{
    render:h=>{
        return h(App);
    }
}

等价于

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

等价于

{
    render:function(creatElement){
        return creatElemnt(App);
    }
}

render:h=>h(App) 这是:

1、ES6的写法,表示Vue实例选项对象的render方法作为一个函数,接受传入的参数h函数,返回h(App)的函数调用结果

2、Vue在创建Vue实例时,通过调用render方法来渲染实例的DOM树

3、Vue在调用render方法时,会传入一个createElement函数作为参数,也就是这里的h的实参是createElement函数,然后createElement会以App为参数进行调用,关于createElement函数说明参见:

https://cn.vuejs.org/v2/guide/render-function.html#createElement-参数

官网介绍的很清楚,这样应该可以理解了。

原文地址:https://www.cnblogs.com/wangzhisdu/p/9841586.html