exercises.md 985 字节
Newer Older
1 2
# diff算法

Z
zhaoshuangshi 已提交
3 4 5 6 7 8 9 10 11 12
Vue 的 diff 算法是用于比较 Virtual DOM 树的算法。在 Virtual DOM 中,每一个元素节点都是一个 JavaScript 对象,当数据发生变化时,Vue 会创建新的 Virtual DOM 树,并与旧的 Virtual DOM 树进行比较,找出两者之间的差异,然后只更新发生变化的部分。

Vue 的 diff 算法采用了一些优化策略,例如同级比较、key 的使用等,以减少比较的次数和提高比较的效率,从而提高应用的性能。

<br/>

Vue2的diff算法执行中,同一层级的数据如果出现新节点和旧节点的tag相同,但是key不同,Vue会进行怎样的操作?

<br/>

13 14 15 16


## 答案

Z
zhaoshuangshi 已提交
17
销毁旧节点,创建新节点,并将新节点插入到旧节点的位置。
18 19 20 21 22

## 选项

### A

Z
zhaoshuangshi 已提交
23
直接将旧节点的内容替换成新节点的内容。
24 25 26

### B

Z
zhaoshuangshi 已提交
27
进行复用,对比新旧节点的属性和子节点,进行更新。
28 29 30

### C

Z
zhaoshuangshi 已提交
31
报错,要求新节点和旧节点的key必须相同。
32