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