• render:h => h(App) ----render函数


    转载其他博客
    1 new Vue({ 2 3 router, 4 store, 5 //components: { App } vue1.0的写法 6 render: h => h(App) vue2.0的写法 7 }).$mount('#app')

    render函数是渲染一个视图,然后提供给el挂载,如果没有render那页面什么都不会出来

    vue.2.0的渲染过程:

    1.首先需要了解这是 es 6 的语法,表示 Vue 实例选项对象的 render 方法作为一个函数,接受传入的参数 h 函数,返回 h(App) 的函数调用结果。

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

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

    render函数和自定义组件中temeplate作用类似,temeplate:"<h1>爱你</h1>"等价
    于render(createElement){ return createElement("h1","爱你") }

    //h为形参,可以嵌套使用但是都是写在h()中
    render(h){
    return h("h1",{
    style:{color:'red'}

    },"爱你")

    }

    渲染函数也可以直接放一个组件进去进行渲染

    简写为render:h => h(zz)
    //此时zz为另一个组件名字(需要进行注册操作)

    vue.component("url",{
    temeplate:"<h1>爱你</h1>"
    //render(h){
    //return h("h1",{
    // style:{color:'red'}

    //},"爱你")

    }
    })

    结合一下官方文档的代码便可以很清晰的了解Vue2.0 render:h => h(App)的渲染过程。

    [官方文档][1]

    1 render: function (createElement) {
    2     return createElement(
    3       'h' + this.level,   // tag name 标签名称
    4       this.$slots.default // 子组件中的阵列
    5     )
    6   }

    本文仅提供参考,是本人闲时所写笔记,如有错误,还请赐教,作者:阿蒙不萌,大家可以随意转载

  • 相关阅读:
    uni-appios端app白屏问题
    vue中倒计时假清除
    vue路由守卫
    JS函数命名规范
    VUE生成二维码
    移动端H5之css配置rem
    关于在vue中使用ui库样式无法修改的问题
    v28 error: resource android:attr/dialogCornerRadius not found.
    cocos2d: fullPathForFilename: No file found at script/jsb_prepare.js. Possible missing file
    android studio clean show: CreateProcess error=2, 系统找不到指定的文件。
  • 原文地址:https://www.cnblogs.com/huchong-bk/p/11341580.html
Copyright © 2020-2023  润新知