实现虚拟DOM
一:完整代码 ;( function (w){ function createElement(type, attribute, ...childs){ // 创建虚拟DOM let element = { type: '' , attribute: {}, childs: [] }; element.type = type; element.attribute = attribute; for (let item of childs){ element.childs.push(item); } return element; } function render(vElement, domNode){ // 把虚拟DOM渲染到真实DOM节点 let elementList = [], // 保存着一些元素数组,这些元素数组的第一项是父元素,其他项是子元素 listItem = [], // 迭代中临时保存elementList的每一项 topE = [vElement], // 保存着上一层元素列表 tempE = [], // topE的临时变量 elementRef = [], // 保存元素引用,不保存文本节点的引用 elementRefs = []; // 另一个,交替使用 while (topE.length != 0){ // 生成符合符合要求的elementList数组