虚拟DOM:虚拟DOM就是一个简单的javascript对象,主要是用来描述真实dom结构的js对象,因为不是真实的dom,所以被称为虚拟dom.
虚拟dom的好处:
提高DOM更新的性能,不用频繁的操作真实dom,在内存中找到变化,再更新真实的dom(一个打补丁的过程)。
diff算法:就是对比两个新旧虚拟dom之间的差异的一种算法。
diff如何比较新旧虚拟DOM:
1.是同级之间进行比较;
2.如果根元素改变,删除整个DOM树重新建立;
3.如果根元素未变,属性改变,复用DOM,只更新属性;
4.如果根元素未变,子元素内容改变,看有没有key值,有key值按key值比较,没有key值就地更新。