1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| function render(element, container) {
const dom = element.type === 'TEXT_ELEMENT' ? document.createTextNode(element.nodeValue) : document.createElement(element.type)
const isProperty = key => key !== 'children' Object.keys(element.props) .filter(isProperty) .forEach(key => { dom[key] = element.props[key] })
element.props.children.forEach(child => { render(child, dom) })
container.append(dom) }
export default render
|