为什么在 React 中键很重要,它们如何提升性能?

发布: (2026年1月31日 GMT+8 00:04)
2 min read
原文: Dev.to

Source: Dev.to

Cover image for Why do keys matter in React, and how do they improve performance?

键为 React 的列表元素提供了稳定的标识,使得调和算法能够在渲染之间正确匹配元素。这可以最小化 DOM 更新,保留组件状态,并提升性能,尤其是在动态列表中。

键解决了什么问题?

React 使用一种 diff(调和)算法来比较 上一次的虚拟 DOM下一次的虚拟 DOM

没有键时,React:

  • 通过列表中的索引来比较元素。
  • 可能会误认为元素已经改变,即使它们没有改变,从而导致不必要的 DOM 替换。

有键时,React:

  • 通过稳定的标识(键)来跟踪元素。
  • 在可能的情况下复用已有的 DOM 节点,避免无谓的销毁和重新创建。

键如何提升性能?

  • 防止不必要的 DOM 更新——DOM 操作代价高,键让 React 能跳过对未改变项的更新。
  • 保留组件状态——没有键时,列表变化可能导致输入框失去焦点或值被清除;有键时,状态得以保留。
  • 实现高效的重新排序——在拖拽列表、排序、过滤等场景中,React 可以移动已有节点,而不是销毁后重新创建。
Back to Blog

相关文章

阅读更多 »

JavaScript 的秘密生活:Proxy

Timothy 坐在他的书桌前,看起来有点不知所措。他有一个简单的 user 对象,但他的代码里充斥着 if 语句。js let user = { name: 'Timothy',...