什么是虚拟DOM
虚拟dom是根据真实dom生成的一个js对象,里面有元素,属性和文本这些与真实dom中的元素,属性,文本一一照应。可以更好地将虚拟节点渲染到页面视图中。
diff算法
当数据更新时会生成新的虚拟dom,新的虚拟dom和旧的虚拟dom进行对比就是diff算法。
当对比相同点时会删除其中一个,不再深度比较;当对比不同点时,会将不同的地方进行记录,对比完后再将不同的地方渲染上,打上补丁。
减少了dom操作,提高了性能。
diff算法的特点:
1>比较只会在同层级进行,不会垮层级进行
2>tag不相同,则直接删掉重建,不再深度比较
3>tag和key,两者都相同,表示相同节点,不再深度比较