
 
一、是什么
 
跟Vue一致,React通过引入Virtual DOM的概念,极大地避免无效的Dom操作,使我们的页面的构建效率提到了极大的提升
 
而diff算法就是更高效地通过对比新旧Virtual DOM来找出真正的Dom变化之处
 
传统diff算法通过循环递归对节点进行依次对比,效率低下,算法复杂度达到 O(n^3),react将算法进行一个优化,复杂度姜维O(n),两者效率差距如下图:
 

 
二、原理
 
react中diff算法主要遵循三个层级的策略:
 
- tree层级
 - conponent 层级
 - element 层级