该算法通过递归已存在的节点从而创建出虚拟DOM。
function createVNode(node, vNode) {
let props = {};
let children = [];
if(node.nodeType === 1){
Array.from(node.attributes).forEach((key) =>{
props[key.nodeName] = key.nodeValue;
});
}
vNode.push({
node:node,
nodeType: node.nodeType,
nodeName: node.nodeName,
props: props,
children: children,
nodeValue:node.nodeValue,
value:node.value,
});
node.childNodes.forEach((key) => {
createVNode(key,children);
});
}