Key 的作用

为什么不能用 index?

Key 的作用

  • 身份标识:Key 是虚拟 DOM 节点的唯一 ID
  • 辅助 Diff:告诉 Vue 哪些节点换了位置、哪些是新增、哪些删除

为什么不能用 Index?

用索引作为 key,当列表顺序变化时:

  1. 所有后续节点的 key 都会变化
  2. Vue 认为全是新节点,或错误复用旧节点状态
  3. 后果:性能下降、输入框内容错乱、动画失效

最佳实践

  • 必须唯一
  • 必须稳定(不要用 Math.random())
  • 推荐用后端返回的唯一 ID