无名阁,只为技术而生。流水不争先,争的是滔滔不绝。

(v-for key) VUE v-for中的:key详解 Vue.js vfor 循环 key属性 全网首发(图文详解1)

前沿技术 Micheal 6个月前 (06-14) 89次浏览 已收录 扫描二维码

(v-for key) VUE v-for中的:key详解

:key 在 Vue.js 的 v-for 循环中是一个特别的属性,我们称之为”键”。当 Vue.js 用 v-for 更新已渲染过的元素列表时,它默认用 “就地复用 “策略。如果数据项的顺序被改变,Vue将不会移动 DOM 元素来匹配数据项的顺序, 而是简单复用此处每个元素,并且确保它在特定索引下能被找到。这个默认模式是高效的,但是只适用于不依赖子组件状态或临时 DOM 状态 (例如:表单输入值) 的列表渲染输出。

要克服这个行为,为每项提供一个唯一 key 属性值来创建依赖项的更完美映射。一个更明确的重现过程是绑定可变对象,如下:

这是一个代码示例:

<template>
  <div id="app">
    <ol>
      <li v-for="item in items" :key="item.id">
        {{ item.message }}
      </li>
    </ol>
  </div>
</template>

<script>
export default {
  name: 'App',
  data() {
    return {
      items: [{ id: 1, message: 'Hello' }, { id: 2, message: 'World' }]
    }
  },
}
</script>

在这个例子中,每次迭代的 item 元素都有一个唯一的 id,我们将这个唯一 id 作为 v-for 指令中的 :key 的值。当列表内容发生变化时,Vue 会基于 :key 的变化重新渲染该元素。若是 :key 没有变化,Vue 则知道不需要重新渲染该元素,提升了性能。

请记住,MARKDOWN_HASHa8064b9584c71317e790de0c9286b9a3MARKDOWNHASH 的值需要是每次迭代中唯一的,不能有重复的值,如果值重复了,那么 Vue 就无法区分列表中的元素了。
(python break和continue) Python中break语句和continue语句的用法讲解 在Python中break和continue关键词 全网首发(图文详解1)
[(对象合并) js中合并对象的几种实现方法 在 Javascript 中合并对象:Object.assign()扩展运算符和lodash.merge() 全网首发(图文详解1)](https://blog.wanwuguiyi.com/js-merge-object “(对象合并) js中合并对象的几种实现方法 在 Javascript 中合并对象:Object.assign()扩展运算符和lodash_.merge() 全网首发(图文详解1)”)

喜欢 (0)
[]
分享 (0)
关于作者:
流水不争先,争的是滔滔不绝