# diff算法
Vue 的 diff 算法是用于比较 Virtual DOM 树的算法。在 Virtual DOM 中,每一个元素节点都是一个 JavaScript 对象,当数据发生变化时,Vue 会创建新的 Virtual DOM 树,并与旧的 Virtual DOM 树进行比较,找出两者之间的差异,然后只更新发生变化的部分。
Vue 的 diff 算法采用了一些优化策略,例如同级比较、key 的使用等,以减少比较的次数和提高比较的效率,从而提高应用的性能。
Vue2的diff算法执行中,同一层级的数据如果出现新节点和旧节点的tag相同,但是key不同,Vue会进行怎样的操作?
## 答案
销毁旧节点,创建新节点,并将新节点插入到旧节点的位置。
## 选项
### A
直接将旧节点的内容替换成新节点的内容。
### B
进行复用,对比新旧节点的属性和子节点,进行更新。
### C
报错,要求新节点和旧节点的key必须相同。