当前位置:  首页>> 技术小册>> Vue面试指南

在 Vue 中,key 是一种特殊的属性,用于帮助 Vue 更好地管理可复用的元素。当 Vue 将一个包含多个相同标签的列表渲染成 DOM 元素时,它会尽可能地复用已经存在的元素,而不是从头开始渲染。这种优化策略在大量数据的情况下可以提高性能,但也会带来一些问题,比如列表中的某个元素状态被改变时,会影响到其他复用的元素。

key 的作用就是为每个元素设置一个唯一标识,当元素状态被改变时,Vue 会根据这个标识来判断该元素是否需要重新渲染。如果没有设置 key,则 Vue 无法判断哪些元素是已有的,哪些是新的,就会出现状态混乱等问题。

以下是一个使用 key 的示例:

  1. <template>
  2. <div>
  3. <div v-for="item in list" :key="item.id">
  4. {{ item.name }}
  5. </div>
  6. </div>
  7. </template>
  8. <script>
  9. export default {
  10. data() {
  11. return {
  12. list: [
  13. { id: 1, name: 'Apple' },
  14. { id: 2, name: 'Banana' },
  15. { id: 3, name: 'Cherry' }
  16. ]
  17. }
  18. },
  19. methods: {
  20. changeList() {
  21. this.list[0].name = 'Orange'
  22. }
  23. }
  24. }
  25. </script>

在上述示例中,我们使用 v-for 渲染一个包含多个相同标签的列表,为每个元素设置了唯一的 key。当 changeList 方法被调用时,修改了 list[0] 的 name 属性,但由于设置了 key,Vue 只会重新渲染修改过的元素,而不是重新渲染整个列表。