zoukankan      html  css  js  c++  java
  • render总结

    vue渲染组件的顺序是:

    执行render函数-->没有render参数解析template参数内容-->没有template参数将el内html当做template解析

    其中解析template实质上是转换为render函数。

    语法:

    render: (createElement)=>{

      return createElement(...)

    }

    备注: 此createElement非原生js方法中的createElement

    难点和精髓在于传入的createElement函数

    createElement语义上应该创建真实的dom元素,但实际上其真实的名称应该是createNodeDescription(创建节点说明),包含此节点的子节点及如何渲染等信息,

    这里注意两点:

    1.创建出的并非真实node,而多称之为虚拟节点(visual node),或简称为VNode,而虚拟dom(visual dom)是对由vNode组成的树的简称

    2.节点有许多种,元素节点、文本节点、注释节点(是的,注释也是节点~)。。

    createElement的三个参数

    1. 当前创建对象{string|Object|function} 必选

    html标签字符串

    Object组件选项对象

    function函数返回前两者

    2.数据对象{object}  可选

    此VNode的属性对象

    3.子节点 {string|Array}  可选

    如果是string,则类似于innerHTML,作为文本节点嵌入

    如果是array,数组元素可以是字符串(文本节点)或由createElement创建的VNode

    例如:

    var vm= new Vue({
        render: h=> {
            return h('p', ['11', h('span', '333')])
        }
    }).$mount('#a')
    View Code
  • 相关阅读:
    对线程的理解
    C#-设计模式-策略模式
    C#-设计模式-观察者模式
    C#-设计模式-模板方法
    C#-设计模式-适配器模式
    C#-设计模式-代理模式
    C#-设计模式-装饰模式
    C#-设计模式-简单工厂
    C#-设计模式-单例模式
    DotNet Core2.1 编写自己的中间件和后台服务
  • 原文地址:https://www.cnblogs.com/yanze/p/7660863.html
Copyright © 2011-2022 走看看