在 Vue 3.0 中,key 是一个用于帮助 Vue 识别 vnode(虚拟 DOM 节点)的特殊属性。key 主要在处理列表渲染时使用,它帮助 Vue 识别节点的唯一性,从而更有效地管理和更新 DOM。

当 Vue 更新列表时,它会尽量复用已存在的 DOM 元素,而不是从头开始重新创建。key 的作用是帮助 Vue 判断哪些节点是新增的、哪些是更新的、哪些是删除的。这有助于提高性能,避免不必要的 DOM 操作。

以下是一个简单的使用 key 的列表渲染示例:
<template>
  <div>
    <ul>
      <li v-for="item in items" :key="item.id">
        {{ item.text }}
      </li>
    </ul>
  </div>
</template>

<script>
export default {
  data() {
    return {
      items: [
        { id: 1, text: 'Item 1' },
        { id: 2, text: 'Item 2' },
        { id: 3, text: 'Item 3' }
      ]
    };
  },
  methods: {
    updateList() {
      // 修改列表时,保持 key 的唯一性
      this.items = [
        { id: 2, text: 'Updated Item 2' },
        { id: 1, text: 'Updated Item 1' },
        { id: 3, text: 'Item 3' },
        { id: 4, text: 'New Item 4' }
      ];
    }
  }
};
</script>

在上述示例中,v-for 循环渲染了一个包含 id 属性的列表。为了提高性能,每个列表项都有一个唯一的 key 值,这样 Vue 就能够更精确地跟踪每个项的变化。

需要注意的是,key 的值应该是唯一的,并且不应该随时间变化。如果你在列表项中使用索引作为 key,当列表发生变化时可能会导致不稳定的渲染结果。最好使用具有稳定唯一标识的属性值作为 key。


转载请注明出处:http://www.zyzy.cn/article/detail/551/Vue 3.0