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