gargi-vachaknavi
Version:
A lightweight frontend framework like React written in vanilla JavaScript.
23 lines (17 loc) • 535 B
JavaScript
function renderElement(node) {
if (typeof node === "string" || typeof node === "number") {
return document.createTextNode(node);
}
const el = document.createElement(node.type);
Object.entries(node.props || {}).forEach(([name, value]) => {
if (name === "children") return;
el.setAttribute(name, value);
});
(node.props.children || []).forEach(child => {
el.appendChild(renderElement(child));
});
return el;
}
export function render(vdom, container) {
container.appendChild(renderElement(vdom));
}