diff算法
![](https://img2018.cnblogs.com/blog/331769/201906/331769-20190616170324073-1035695573.png)
如图,两个文本文件,linux有一个最基本的diff命令,就是找出两个文件的异同,区别。
还有git diff的命令,也可以看出修改的内容,如图
![](https://img2018.cnblogs.com/blog/331769/201906/331769-20190616170345140-2042446524.png)
网上还有一些对比的工具,也可以对比代码的区别。
所以diff算法不依赖于任何插件,他并不是react,vue什么提出来的新概念。只不过移到了react中,对比的是js对象而已,他早就在我们的身边。
首先diff算法非常复杂,实现难度很大,源码量很大。我们明白核心流程,不关心细节就行。
vdom为何使用diff算法
1、dom操作是‘昂贵的’,因此尽量减少dom操作
2、找出本次dom必须更新的节点来更新,其他的不更新
3、这个‘找出’的过程,就需要diff算法。
所以真正的用途就是找出两个vdom的差异。