请教一下react 键片的感念
我不是很清楚如果不在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。