我只是在想从https://coderwall.com/p/jdybeq/the-importance-of-component-keys-in- react-js阅读文章。
它有一个简单的小提琴代码,它说-如果您没有唯一的常数键,则可能会遇到
在以下情况下,它相当令人困惑-
扩展@Deadfish答案。假设您有10个待办事项,每个项目都有状态(例如,是否处于编辑模式)。
在下一个渲染过程中,只剩下9个待办事项。例如,因为您删除了一项。
现在,react需要知道原始的10个项目中还有哪些仍然保留,因此它可以保留每个项目的状态,并仅重新渲染状态更改的项目。
那就是反应使用的目的key。如果使用索引作为键,则原始键为0..9。新的键是0..8。
key
这可能会导致几个问题:
使用唯一和不变的键-不仅在单个渲染运行中 唯一 ,而且在 多个渲染循环中 尤其 稳定 -可以确保一切按预期工作,并确保有效地更新DOM。