// 将虚拟dom 转换为 真实 dom
let vdom = {
tag: 'DIV',
attrs:{
id:'app'
},
children: [
{
tag: 'SPAN',
children: [
{ tag: 'A', children: [] }
]
},
{
tag: 'SPAN',
children: [
{ tag: 'A', children: [] },
{ tag: 'A', children: [] }
]
}
]
}
// 实现
function _render (vnode) {
//特殊性
if (typeof vnode == 'number') {
vnode = String(vnode)
}
if (typeof vnode == 'string') {
return document.createTextNode(vnode)
}
// 通用
let dom = document.createElement(vnode.tag)
if (vnode.attrs) {
for (let key in vnode.attrs) {
dom.setAttribute(key, vnode.attrs[key])
}
}
if (vnode.children) {
vnode.children.forEach(e => {
dom.appendChild(_render(e))
})
}
return dom
}
_render(vdom)
【笔记】将虚拟DOM转换为真实DOM (render)
最新推荐文章于 2024-04-30 16:57:21 发布