创建createElement

Posted wzybnzy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了创建createElement相关的知识,希望对你有一定的参考价值。

let oDiv =
  tag:‘div‘, 
  props:
    id:‘box‘
  
 


let oP = createElement(‘p‘,‘class‘:‘list‘,[‘周一‘]);

//创建一个div标签

let oDiv1 = createElement(‘div‘,
    id:‘box‘,
    class:‘wrap‘,
    style:
      width:‘100px‘,
      height:‘100px‘,
      background:‘red‘
    ,
  ,[‘2000‘,oP])

//创建标签方法

function createElement(tag,props,children)
    return
      tag,
      props:...props,
      children:[...children]
    



// 把虚拟的dom转成真实的dom,并且把它渲染到页面里面

 

render(oDiv1,document.getElementById(‘root‘));
function render(vTree,root)
  let target = createDom(vTree);
  root.appendChild(target);
  //把虚拟的dom转成真实的dom
  function createDom(vTree)
    let tag,props,children = vTree;
    
    //创建节点
    let targetDom = document.createElement(tag);
    //添加属性
    Object.entries(props).forEach(item =>
      let [key,value] = item;
      if(typeof value == ‘object‘)//[[id,box], [class,list]]
        value = Object.entries(value).map(item1 => item1[0]+‘:‘+item1[1]).join(‘;‘)
      
      targetDom.setAttribute(key,value)
    )
    //添加子节点
    if(children)
      children.forEach(item =>
      let targetText = typeof item == ‘string‘ ? document.createTextNode(item) : createDom(item);
      targetDom.appendChild(targetText)
      )
    
    return targetDom;
  

 

以上是关于创建createElement的主要内容,如果未能解决你的问题,请参考以下文章

要用MFC创建一个窗口,如何创建?

oracle 安装完了,怎么创建用户和数据库???

oracle 安装完了,怎么创建用户和数据库???

mysql在创建表的时候可以创建字段那么创建新数据库的时候可以顺便创建表吗

Pod 的创建

桌面快捷方式如何创建 如何创建桌面快捷方式