CNode

请教一下react 键片的感念

问答
Bbugall发布于10 年前最后回复10 年前8 回复4881 浏览0 收藏

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

查看回复

回复 (8)

L
leapon#1·10 年前
引用 bugall@leapon DOM上的 data reactid=".0.1.0" 的作用是什么?

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

B
bugall#2·10 年前

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

K
klesh#3·10 年前

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

L
leapon#4·10 年前
引用 bugall@leapon 那为什么react自己生成了 要需要我手动绑定,不然在循环生成dom的时候react会报警告

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

L
leapon#5·10 年前

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

Q
qianjiahao#6·10 年前

经过迭代的对象都要加key

B
bugall#7·10 年前

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

B
bugall#8·10 年前

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

参与回复
登录后即可参与回复。登录