题解 | #虚拟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)

递归

#解题#
全部评论

相关推荐

投票
我要狠拿offer:如果不是必须去成都绝对选九院呀,九院在四川top1研究所了吧
点赞 评论 收藏
分享
5 收藏 评论
分享
牛客网
牛客企业服务