什么是虚拟DOM?为什么要使用虚拟DOM?虚拟DOM(virtualDOM)就是用JavaScript对象来描述DOM。原生JS或JQ操作DOM时,浏览器会从构建DOM树开始,从头到尾执行这个过程。在一次操作中,我需要更新10个DOM节点。浏览器收到第一个更新请求后,不知道还有9次更新操作,所以会立即执行流程,最后执行了10次。使用虚拟DOM可以先体现在JS对象(虚拟DOM)上,在内存中操作JS对象效率更高。更新完成后,将最终的JS对象映射到真实的DOM中,由浏览器绘制。snabbdom的核心第一个init()函数用于加载模块,并返回patch函数使用h()函数创建真实DOM描述的虚拟DOM使用patch函数比较新旧两个vnode更新将更改后的DOM节点转换为真实的DOM树label+selector//第二个参数:如果是字符串,就是标签中的文本内容letvnode=h('div#container.cls','helloworldxuquantong')letapp=document.querySelector('#app')//patchfunctionNo.//No.第一个参数:oldvnode,可以是DOM元素,dom元素会被转换成vnode//第二个参数:newvnode//返回newvnode,也就是第二个参数letoldVnode=patch(app,vnode)vnode=h('div#container.xxx','hellozhangyanzhen')patch(oldVnode,vnode)
