题解 | #虚拟DOM#

虚拟DOM

https://www.nowcoder.com/practice/a283d2c284ed49468c3b0f6ec0312b0f

const _createElm = vnode => {
  // 判断是否是空标签 返回text
  if (vnode.tag == undefined) {
    return vnode.text
  }

  // 否则创建标签
  let tag = document.createElement(vnode.tag)
  // 遍历属性设置属性
  Object.keys(vnode.props).forEach((el) => {
    tag.setAttribute(el, vnode.props[el])
  })

  // 设置当前的值
  if (vnode.text) tag.innerText = vnode.text

  //遍历子元素 重复此步骤
  vnode.children.forEach(item => {
    let temp = _createElm(item)
    if (typeof temp == 'string') {
      tag.innerText = temp
    } else {
      tag.appendChild(temp)
    }
  })

  // 返回标签
  return tag
}
_createElm(vnode)

递归

#解题#
全部评论

相关推荐

09-22 09:42
门头沟学院 Java
牛客37185681...:马德,我感觉这是我面过最恶心的公司,一面是两个女hr,说什么实习前几个月属于试用期,试用期过了才能转成正式实习生,我***笑了,问待遇就是不说,问能不能接受全栈,沙币公司
如果可以选,你最想去哪家...
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
5
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务