Vue中的v-for循环key属性注意事项小结

 更新时间:2018年08月12日 11:22:34   作者:北海之灵   我要评论

这篇文章主要介绍了Vue中的v-for循环key属性注意事项小结,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下

当Vue用 v-for 正在更新已渲染过的元素列表是,它默认用“就地复用”策略。如果数据项的顺序被改变,Vue将不是移动DOM元素来匹配数据项的改变,而是简单复用此处每个元素,并且确保它在特定索引下显示已被渲染过的每个元素。

为了给Vue一个提示,以便它能跟踪每个节点的身份,从而重用和重新排序现有元素,你需要为每项提供一个唯一 key 属性。key属性的类型只能为 string或者number类型。

在下面这个例子中,如果不给 p 元素绑定key,我先选中第一个,

然后输入ID和Name,点击添加按钮之后,就会出现如下这种情况,刚添加的元素被选中。如果绑定了key属性,则不会出现这种情况。

完整的代码:

<html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 </head>
<body>
 <div id='app'>
  <!--v-for循环普通数组-->
  <div>
   <label>ID:<input type="text" v-model="id"></label>
   <label>Name:<input type="text" v-model="name"></label>
   <input type="button" value="添加" @click="add" />
  </div>
  <!--注意:v-for循环的时候,key属性只能使用number或string -->
  <!--注意:key使用的时候,必须使用v-bind绑定属性的形式,指定key的值 -->
  <!-- 在组件中,使用 v-for循环的时候,或者在一些特殊情况中,如果v-for有问题,
   必须在使用v-for的同时,指定唯一的 字符串/数字 类型:key 值-->
  <p v-for="item in list" :key="item.id">
   <input type="checkbox"/>
   {{item.id}}--{{item.name}}
  </p>
  
 </div>
</body>
<script src="vue.min.js"></script>
<script>
 var vm = new Vue({
  el:'#app',
  data:{
   id:"",
   name:"",
   list:[
    {id:1, name:'李斯'},
    {id:2, name:'嬴政'},
    {id:3, name:'赵高'},
    {id:4, name:'韩非'},
    {id:5, name:'荀子'},
   ],
  },
  methods:{
   add(){
    this.list.unshift({id:this.id,name:this.name});
   }
  }
 });
</script>
</html>

总结

以上所述是小编给大家介绍的Vue中的v-for循环key属性注意事项小结,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

相关文章

  • 基于vue 添加axios组件,解决post传参数为null的问题

    基于vue 添加axios组件,解决post传参数为null的问题

    下面小编就为大家分享一篇基于vue 添加axios组件,解决post传参数为null的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-03-03
  • 在vue-cli脚手架中配置一个vue-router前端路由

    在vue-cli脚手架中配置一个vue-router前端路由

    这篇文章主要给大家介绍了在vue-cli脚手架中配置一个vue-router前端路由的相关资料,文中通过示例代码介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面跟着小编一起来学习学习吧。
    2017-07-07
  • vue实现ToDoList简单实例

    vue实现ToDoList简单实例

    这篇文章主要为大家详细介绍了vue实现ToDoList简单实例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-02-02
  • Vue组件中的data必须是一个function的原因浅析

    Vue组件中的data必须是一个function的原因浅析

    这篇文章主要介绍了Vue组件中的data必须是一个function的原因浅析,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-09-09
  • Vue概念及常见命令介绍(1)

    Vue概念及常见命令介绍(1)

    这篇文章主要为大家详细介绍了Vue概念及常见命令,介绍了vue.js声明式渲染、双向绑定及常用指令,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-12-12
  • Vuejs实现带样式的单文件组件新方法

    Vuejs实现带样式的单文件组件新方法

    这篇文章主要为大家详细为大家详细介绍了Vuejs实现带样式的单文件组件的新方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-05-05
  • Vue自定义属性实例分析

    Vue自定义属性实例分析

    这篇文章主要介绍了Vue自定义属性,结合实例形式分析了vue.js自定义属性相关原理、实现方法及操作注意事项,需要的朋友可以参考下
    2019-02-02
  • vue子组件使用自定义事件向父组件传递数据

    vue子组件使用自定义事件向父组件传递数据

    这篇文章主要介绍了vue子组件使用自定义事件向父组件传递数据的方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2017-05-05
  • vue 添加vux的代码讲解

    vue 添加vux的代码讲解

    通过命令npm install vux --save添加vux,在相关配置文件中配置信息,具体代码添加方法,大家参考下本文
    2017-11-11
  • Vue.js实现文章评论和回复评论功能

    Vue.js实现文章评论和回复评论功能

    这篇文章主要为大家详细介绍了Vue.js实现文章评论和回复评论功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-04-04

最新评论