Vue.js在数组中插入重复数据的实现代码

1、在默认的情况下,Vue.js默认不支持往数组中加入重复的数据。可以使用track-by="$index"来实现。

2、不使用track-by="$index"的数组插入,数组不支持重复数据的插入

2.1  JavaScript代码

<script type="text/javascript" src="../js/vue-1.0.21.js"></script>
  <script type="text/javascript">
   window.onload = function() {
    vm = new Vue({
     el: '#app',
     data: {
      arrMsg: ['apple', 'orage', 'pear']
     },
     methods: {
      add: function() {
       this.arrMsg.push('tamota');
      }
     }
    });
   }
  </script> 

2.2  html代码

<div id="app">
   <!--显示数据-->
   <ul>
    <li v-for="value in arrMsg" >
     {{value}}
    </li>
   </ul>
   <button type="button" @click="add">增加数据</button>
  </div> 

2.2  结果

3、使用track-by="$index"的数组插入,数组支持重复数据的插入

3.1 Javascript代码

<script type="text/javascript" src="../js/vue-1.0.21.js"></script>
  <script type="text/javascript">
   window.onload = function() {
    vm = new Vue({
     el: '#app',
     data: {
      arrMsg: ['apple', 'orage', 'pear']
     },
     methods: {
      add: function() {
       this.arrMsg.push('tamota');
      }
     }
    });
   }
  </script> 

3.2 html代码

<div id="app" class="container">
   <!--显示数据-->
   <ul>
    <li v-for="value in arrMsg" track-by="$index" >
     {{value}}
    </li>
   </ul>
   <button type="button" @click="add" >增加数据</button>
  </div> 

3.3 结果

4、完整代码

<!DOCTYPE html>
<html>
 <head>
  <meta charset="UTF-8">
  <title></title>
  <link rel="stylesheet" href="../css/bootstrap.min.css" rel="external nofollow" />
  <style type="text/css">
   .container{
    margin-top: 20px;
   }
  </style>
  <script type="text/javascript" src="../js/vue-1.0.21.js"></script>
  <script type="text/javascript">
   window.onload = function() {
    vm = new Vue({
     el: '#app',
     data: {
      arrMsg: ['apple', 'orage', 'pear']
     },
     methods: {
      add: function() {
       this.arrMsg.push('tamota');
      }
     }
    });
   }
  </script>
 </head>
 <body>
  <div id="app" class="container">
   <!--显示数据-->
   <ul>
    <li v-for="value in arrMsg" track-by="$index" >
     {{value}}
    </li>
   </ul>
   <button type="button" @click="add" >增加数据</button>
  </div>
 </body>
</html> 

ps:下面看下vue 数组重复,循环报错

Vue.js默认不支持往数组中加入重复的数据。可以使用track-by="$index"来实现。

总结

以上所述是小编给大家介绍的Vue.js在数组中插入重复数据的实现代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

(0)

相关推荐

  • vue.js中$set与数组更新方法

    由于 JavaScript 的限制,Vue 不能检测以下变动的数组: 当利用索引直接设置数组的某一项时,例如:vm.items[indexOfItem] = newValue 当你修改数组的长度时,例如:vm.items.length = newLength,不会更新数组. 当然vue中给了解决方法,就是使用 Vue.set, vm.$set(Vue.set的变种写法)或者 splice,caoncat等修改数组,同时也将触发状态更新: ex: 所以如果在实例创建后添加新的属性到实例上,则不会触

  • Vue.js绑定HTML class数组语法错误的原因分析

    Vue.js绑定HTML class数组语法错误,详情如下所示: 昨天在官网教程上发现一个错误是这样的,下面看图 http://cn.vuejs.org/guide/class-and-style.html 当有多个条件class时这样写有些繁琐.在1.0.19+中,可以在数组语法中使用对象语法: 如果这样写是可以执行成功的,但有错误 data: { classA: 'class-a', classB: 'class-b', classC: 'class-c', isB: true, isC:

  • vue.js移动数组位置,同时更新视图的方法

    使用vue.js v-for绑定若干个选项,需要对选项进行排序上下移动操作. 需要对options里面数组的位置进行交换,通常是这样来写: 假设向前移动一个: var index = this.options.indexOf(option); //获取当前选项对象在数组里面的索引. var tempOption = this.options[index-1]; //存储前一个 this.options[index-1] = option;(this.options[index]) this.op

  • 浅析vue.js数组的变异方法

    Vue 包含一组观察数组的变异方法,所以它们也将会触发视图更新.这些方法如下: push() pop() shift() unshift() splice() sort() reverse() 都有什么功能?动手试验了一下: <body> <div id="app"> <div> push方法: <input type="text" v-model="text" @keyup.enter="me

  • Vue.js中数组变动的检测详解

    前言 最近在尝试用Vue.js重构公司的现有业务代码,组件化的设计思路和MVVM的思想让我深深沉迷于其中.但是是踩到了不少坑,就比如这篇文章介绍的数组绑定后的更新检测. 相信大家都知道Observer,Watcher,vm 可谓 Vue 中比较重要的部分,检测数据变动后视图更新的重要环节.在 vue.js中$watch的用法示例 中,我们讨论了如何实现基本的 watch . 接下来,我们来看看如何实现数组变动检测. 例子: // 创建 vm let vm = new Vue({ data: {

  • Vue.js在数组中插入重复数据的实现代码

    1.在默认的情况下,Vue.js默认不支持往数组中加入重复的数据.可以使用track-by="$index"来实现. 2.不使用track-by="$index"的数组插入,数组不支持重复数据的插入 2.1  JavaScript代码 <script type="text/javascript" src="../js/vue-1.0.21.js"></script> <script type=&q

  • Flutter List数组避免插入重复数据的实现

    List 具有一定长度存在索引的对象集合(长度为0不存在索引,长度>0存在索引) 常见列表 1.定长列表 默认值null 例如:List<int> fixedLengthList = new List(2).List<int> fixedLengthList = new List(8) List<int> fixedLengthList = new List(2); for(int i=0;i<2;i++){ print("索引为${i}的值${f

  • Vue如何根据id在数组中取出数据

    目录 如何根据id在数组中取出数据 Vue获取数组的数组数据 如何根据id在数组中取出数据 这是一个非常实用的操作,尤其是编辑数据的时候.点击编辑数据,通常会将编辑的这条数据发送给后端,然后后端在根据这个编号查询出相应的数据在返回给前端. 那么请问,后端都将数据给你了,你直接在数组中取出来不是很好吗? 这样简单快捷.可以给后端避免没有必要的负担,万一网络不好还会获取失败,尤其现在带宽这么贵. JS中有一个 findIndex()方法就是获取对应数据在数组中的索引,然后就可以根据这个索引在数组中取

  • Vue.js 2.0中select级联下拉框实例

    在网上搜索了Vuejs2.0 动态级联select许久未果,决定自己总结一下自己的经验,有关select在Vue.js 2.0版本中的应用.首先我先说一下的我使用的技术,我参考了网上成熟的经验,选择以Vue.js 2.0+Vue-router+Vuex的全家桶. select首先要区分单选和多选,v-model在select单选和多选上有区别.     select单选实例: <select v-model="fruit"> <option selected valu

  • vue.js element-ui validate中代码不执行问题解决方法

    先说结论 在自定义验证里面每一个判断都要有callback(),就是要保证callback()一定会执行到 因为要验证数字,参考了官网参考代码如下,发现有如下图bug,当输入为以数字开头包含字符串的内容时,验证不会报错,因为业务逻辑也不相符,随改写代码 <el-form-item label="年龄" prop="age"> <el-input v-model.number="ruleForm2.age"></el-

  • 解决vue.js提交数组时出现数组下标的问题

    这是因为在vue.js 里面的ajax.js文件内对数据进行了深度解析了,我们只需要 let axios = Axios.create({ baseURL: 'http://127.0.0.1:8761/', headers: {'X-Requested-With': 'XMLHttpRequest'}, transformRequest: [function (data) { //在data当中存在数组的话需要加上{arrayFormat: 'brackets'} 否则提交时数组会显示下标 d

  • Vue组件传值过程中丢失数据的分析与解决方案

    前言 在上一篇文章 JavaScript 中的两种数据类型中,分别介绍了基本类型和引用类型,以及引用类型的浅拷贝与深拷贝.这里需要注意的是,该文章中深拷贝引用类型值的方法,并不是完美的,引用类型值中的某些属性值,仍不能完整地复制到新的变量中.比如函数值,在深拷贝过程中,就会丢失. 问题 在实际项目中,假如使用了二次封装的组件,并且封装的组件内部做了一些属性值的深拷贝操作,就有极有可能因为传入的属性值是引用类型的值,导致丢失部分数据. 举例 以基于 el-table 封装的 ak-table 组件

  • js从数组中删除指定值(不是指定位置)的元素实现代码

    引用自百度知道里面的一个问答 例如数组{1,2,3,4,5} 要把数组里面的3删除得到{1,2,4,5} js代码: <script type="text/javascript"> Array.p Array.prototype.indexOf = function(val) { //prototype 给数组添加属性 for (var i = 0; i < this.length; i++) { //this是指向数组,this.length指的数组类元素的数量 i

  • 利用js查找数组中指定元素并返回该元素的所有索引示例

    前言 这篇文章主要给大家介绍的是利用js查找数组中指定元素并返回该元素的所有索引的相关资料,文中给出了详细的示例代码,下面话不多说,来看看详细的代码示例吧. 示例代码 //在数组中查找所有出现的x,并返回一个包含匹配索引的数组 function findall(a,x){ var results=[], len=a.length, pos=0; while(pos<len){ pos=a.indexOf(x,pos); if(pos===-1){//未找到就退出循环完成搜索 break; } r

  • JS查找数组中重复元素的方法详解

    本文实例讲述了JS查找数组中重复元素的方法.分享给大家供大家参考,具体如下: JS的数据类型有一个数组.今天我们就来谈谈对数组的一种处理.相信很多人都遇到过从数组中查找出不重复的元素,但是我遇到的却是从数组中查找出重复的元素. 从js数组中查找出不重复的元素的方法有很多,下面就给大家列举一个: <!DOCTYPE html> <html> <body> <script> Array.prototype.deleteEle=function(){ var ne

随机推荐