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