React key 是干嘛用的? 为什么要加?key 主要是解决哪一 类问题的?

185 阅读1分钟

Keys 是 React 用于追踪哪些列表中元素被修改、被添加或者被移除的辅助标识。在开发过程中,我们需要保证某个元素的 key 在其同级元素中具有唯一性。

在 React Diff 算法中 React 会借助元素的 Key 值来判断该元素是新近创建的还是被移动而来的元素,从而减少不必要的元素重渲染,此外,React 还需要借助 Key 值来判断元素与本地状态的关联关系。

注意事项:

  • key 值一定要和具体的元素—一对应;
  • 尽量不要用数组的 index 去作为 key;
  • 不要在 render 的时候用随机数或者其他操作给元素加上不稳定的key,这样造成的性能开销比不加 key 的情况下更糟糕。