<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<style>

</style>
<script src="vue.js"></script>
<script>

</script>
</head>
<body>
<div id="box">
<input type="button" value="添加" @click="add">
<ul>
<li v-for="val in arr" track-by="$index">
{{val}}
</li>
</ul>
</div>
<script>

var vm=new Vue({
data:{
arr:['apple','pear','orange']
},
methods:{
add:function(){
this.arr.push('tomato');
}
}
}).$mount('#box');

</script>
</body>
</html>

点击页面会添加'tomato',但是继续点击不会添加'tomato',会给出提示[Vue warn]: Duplicate value found in v-for="val in arr": "tomato". Use track-by="$index" if you are expecting duplicate values.

解决办法:

<li v-for="val in arr" track-by="$index">  改成 <li v-for="val in arr" track-by="$index">

因为 v-for 默认通过数据对象的特征来决定对已有作用域和 DOM 元素的复用程度,这可能导致重新渲染整个列表。但是,如果每个对象都有一个唯一 ID 的属性,便可以使用 track-by 特性给 Vue.js 一个提示,Vue.js 因而能尽可能地复用已有实例。

按你的需求是希望循环comments,如果comments中没有需要复用的数据,可以直接写
<component v-for="comment in comments" track-by="$index"></component>
,如果所有的comments可以用id区分,则可以使用
<component v-for="comment in comments" track-by="id"></component>, 然后在替换数组comments 时,如果 Vue.js 遇到一个包含 id: 'xxx' 的新对象,它知道它可以复用这个已有对象的作用域与 DOM 元素。

最新文章

  1. iOS 网易新闻用到的框架
  2. 7.10 数据注解特性--NotMapped
  3. HttpContext.GetOwinContext().Authentication 报错 解决办法
  4. Servlet上下文
  5. [算法] 数据结构之AVL树
  6. IE 兼容性写法
  7. 12、第十二节课,css伪类 (转)
  8. 谈谈文件增量同步算法:RSYNC和CDC
  9. PHP使用DomDocument抓取HTML内容
  10. 微信小程序开源项目库汇总
  11. dedecms_分页技术
  12. Linux必备操作vim
  13. React Native ios开发第一课
  14. golang类型断言
  15. netcore swagger xml发布丢失问题
  16. android判断adb调试是否打开及代码跳转到开发者选项界面
  17. IT 运营架构杂谈【前言】
  18. Chrome插件汇总
  19. 新电脑的操作系统win10的所有设置问题汇总
  20. SpringBoot(五) Web Applications: MVC

热门文章

  1. java 周期时期计算
  2. Django的MySQL Driver配置
  3. Delphi SpeedButton组件
  4. Linux课程学习 第三课
  5. Centos7 初始化
  6. Share:《THE ULTIMATE XSS PROTECTION CHEATSHEET FOR DEVELOPERS》
  7. java 8 foreach获取索引
  8. Angular4.x+Ionic3 踩坑之路之 Ionic3.x pop反向传值
  9. 在Spring MVC 中配置自定义的类型转换器
  10. 3DES加解密类