const h = (tag, props, children) => {
// vnode -> javascript对象 -> {}
return {
tag,
props,
children
}
}
const mount = (vnode, container) => {
// console.log("mount: ", vnode, container)
// vnode -> element
// 1.创建出真实的元素并且在vnode上面保存一份真实dom
const el = vnode.el = document.createElement(vnode.tag)
// 2.处理props
if (vnode.props) {
for (const key in vnode.props) {
// console.log("key: ", key)
const value = vnode.props[key]
if (key.startsWith("on")) { // 对事件监听的边缘处理
el.addEventListener(key.slice(2).toLowerCase(), value)
} else {
el.setAttribute(key, value)
}
}
}