React渲染列表中的Key
重新render
时React根据Key
用当前列表与上一次的列表进行比较,判断列表中元素是否发生了插入
,移动
,或删除
。如果当前列表中的key
在之前的列表中没有,React会新创建一个组件,如果当前列表中没有上次列表中存在的key
则这个组件会被删除。
因此如果列表中的key
不能持久的唯一表示某一个元素时(例如:用数组index作为key),当重新render
时,会导致React做多余的创建和删除操作,甚至发生排序混乱问题。
Key一定不能改变,否则失去了意义,也不要在渲染的时候动态生成
2023-04-24