为什么不能拿数组的index作为react的key
- 因为对于动态列表,如果索引对应的值发生了变化,尤其是排在前面的索引被删除后,会导致后面的列表要全部重新更新一遍
// 修改前
<li key="0">0</li>
<li key="1">1</li>
<li key="2">2</li>
// 删除第一项后
<li key="0">1</li>
<li key="1">2</li>
这样会导致1和2都需要重新更新一遍dom,第一项也需要删除,这样整个dom都发生了变化
但如果采用id,删除第一项后为
<li key="1">1</li>
<li key="2">2</li>
这样比对key后,发现没有变化则不需要重新更新1和2的dom
网友评论