乐趣区

关于前端:为什么react的key不建议使用index

在 React 中应用 key 属性是为了在 Virtual DOM 的更新过程中,帮忙 React 辨认哪些元素是曾经存在的、哪些是须要新增的、哪些是须要删除的。应用 key 的目标是让 React 在进行 DOM 的和谐(Reconciliation)时可能更加高效的进行操作。

然而,如果在列表渲染中应用 index 作为 key,就会有一些问题。具体来说:

  1. 如果列表产生了增删,本来的 index 和新的 index 就不统一了,这会导致 React 谬误的辨认出曾经存在的元素,从而关联谬误的元素进行 DOM 操作。
  2. 如果在列表操作中,有两个不同的元素有雷同的 index,这也会导致 React 出错。
  3. 如果列表中的元素有从新排序,应用 index 作为 key 的话,React 就会认为元素的内容没有变动,就不会更新 DOM,这就导致了一些潜在的显示问题。

因而,为了防止这些问题,倡议应用惟一的、稳固的字符串或者数字作为 key,例如元素的 ID 或者其余惟一的标志符。这样能够保障 React 可能正确的进行 DOM 操作,从而进步利用的性能和可靠性。

退出移动版