请教一下react 键片的感念
发布于 9 年前 作者 bugall 4347 次浏览 最后一次编辑是 8 年前 来自 问答

我不是很清楚如果不在dom上设置key的话为什么更改dom就会重新mount?

8 回复

设了key后,React 就知道哪个位置有更新。没有key,React在render的时候就抓瞎了,干脆全更新得了。 记得这个key设置主要是针对数组的。

经过迭代的对象都要加key

@leapon 为什么react能在第一次mount的时候就分配一个id?为什么需要我们手动设置。

@leapon DOM上的 data-reactid=".0.1.0" 的作用是什么?

@bugall React 自己用的,自动生成。像个树的索引。

@leapon 那为什么react自己生成了 要需要我手动绑定,不然在循环生成dom的时候react会报警告

因为要考虑删除中间元素的情况,提供 key 才能高效地对比如前两个列表之间被删除的元素。index 是顺序的,无法作为对比依据。

@bugall data-reactid 是 React 控制的,key 是用户控制的。用户不能依赖 React 控制的 data-reactid。

回到顶部