题解 | #虚拟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)
递归
#解题#
查看13道真题和解析