Vue中splice()方法对数组进行增删改等操作的实现

 更新时间:2023年05月18日 09:05:15   作者:李長庚  
vue中对数组的元素进行删除,以前一直以为这个方法是vue中特有的,后来百度之后才知道原来是js的一个写法,下面这篇文章主要给大家介绍了关于Vue中splice()方法对数组进行增删改等操作的实现方法,需要的朋友可以参考下

语法结构:splice(index,len,[item])

1、可以用来添加/删除/替换数组内某一个或者几个值

2、该方法会改变原始数组

  • index:数组开始下标       
  • len: 替换/删除的长度       
  • item:替换的值,删除操作的话 item为空

一、删除:

index表示要删除的数组下标, len长度为1(len设置1,如果为0,则数组不变),item为空表示执行删除操作

<template>
<div id="demo">
  <h2>v-for 遍历数组</h2>
  <ul>
    <li v-for="(item, index) in persons" :key="index">
	      序号:{{index}}
	      名字:{{item.name}}
	      年龄:{{item.age}}
     <button @click="del(index)">删除</button>
    </li>
  </ul>
</div>
</template>
<script>
export default {
  data(){
    return{
        persons: [
          {name: 'Tom', age:18},
          {name: 'Jack', age:17},
          {name: 'Bob', age:19},
          {name: 'Mary', age:16}
        ]
    }
  },
  methods:{
       //删除(注意:删除的方法名不能用delete,因为delete是系统关键字)
      del(index) {
        this.persons.splice(index, 1) 
      }
  }
}
</script>
<style>
</style>

二、替换(修改):

相当于是先删除,再添加

<div id="demo">
  <h2>测试: v-for 遍历数组</h2>
  <ul>
    <li v-for="(item, index) in persons" :key="index">
	      序号:{{index}}
	      名字:{{item.name}}
	      年龄:{{item.age}}
     <button @click="update(index, {name:'张三', age: 16})">更新</button>
    </li>
  </ul>
</div>
<script type="text/javascript" src="../js/vue.js"></script>
<script type="text/javascript">
  new Vue({
    el: '#demo',
    data: {
      persons: [
        {name: 'Tom', age:18},
        {name: 'Jack', age:17},
        {name: 'Bob', age:19},
        {name: 'Mary', age:16}
      ]
    },
    methods: {
      //修改
      update(index, item) {
        this.persons.splice(index, 1, item)
      }
    }
  })
</script>

三、添加:

index下标直接设置为0,len长度也设置为0,item传入要添加的对象

<div id="demo">
  <h2>测试: v-for 遍历数组</h2>
  <ul>
    <li v-for="(item, index) in persons" :key="index">
	      序号:{{index}}
	      名字:{{item.name}}
	      年龄:{{item.age}}
    </li>
  </ul>
  <button @click="add({name: '李四', age: 18})">添加</button>
</div>
<script type="text/javascript" src="../js/vue.js"></script>
<script type="text/javascript">
  new Vue({
    el: '#demo',
    data: {
      persons: [
        {name: 'Tom', age:18},
        {name: 'Jack', age:17},
        {name: 'Bob', age:19},
        {name: 'Mary', age:16}
      ]
    },
    methods: {
        //添加
        add (item) {
            this.persons.splice(0, 0, item)
        }
    }
  })
</script>

附加知识点:

在v-for遍历中,都需要声明:key,那么:key的作用是什么呢?

答:vue和react都实现了一套虚拟DOM,使我们可以不直接操作DOM元素,只操作数据便可以重新渲染页面。而隐藏在背后的原理便是其高效的Diff算法。vue和react的虚拟DOM的Diff算法大致相同,其核心是基于两个简单的假设:

假设1、 两个相同的组件产生类似的DOM结构,不同的组件产生不同的DOM结构。

假设2、 同一层级的一组节点,他们可以通过唯一的id进行区分。

简单的说, :key的作用主要是为了高效的更新虚拟DOM

总结

到此这篇关于Vue中splice()方法对数组进行增删改等操作实现的文章就介绍到这了,更多相关Vue splice()对数组增删改内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • antd的select下拉框因为数据量太大造成卡顿的解决方式

    antd的select下拉框因为数据量太大造成卡顿的解决方式

    这篇文章主要介绍了antd的select下拉框因为数据量太大造成卡顿的解决方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-10-10
  • Vue使用鼠标在Canvas上绘制矩形

    Vue使用鼠标在Canvas上绘制矩形

    这篇文章主要介绍了Vue使用鼠标在Canvas上绘制矩形,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-12-12
  • vue-cli4.x创建企业级项目的方法步骤

    vue-cli4.x创建企业级项目的方法步骤

    这篇文章主要介绍了vue-cli4.x创建企业级项目的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-06-06
  • Vue打包后访问静态资源路径问题

    Vue打包后访问静态资源路径问题

    在本篇文章里小编给各位整理的是关于Vue打包后访问静态资源路径问题相关知识点,需要的朋友们学习下。
    2019-11-11
  • vue单页面改造多页面应用详解

    vue单页面改造多页面应用详解

    本文主要介绍了vue单页面改造多页面应用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-06-06
  • vuex中store的action和mutations用法

    vuex中store的action和mutations用法

    这篇文章主要介绍了vuex中store的action和mutations用法,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-04-04
  • vue-cli + sass 的正确打开方式图文详解

    vue-cli + sass 的正确打开方式图文详解

    本文通过图文并茂的形式给大家介绍了vue-cli + sass 的正确打开方式,非常不错,具有参考借鉴价值,需要的朋友参考下吧
    2017-10-10
  • Vue3中的ref和reactive响应式原理解析

    Vue3中的ref和reactive响应式原理解析

    这篇文章主要介绍了Vue3中的ref和reactive响应式,本节主要介绍了响应式变量和对象,以及变量和对象在响应式和非响应式之间的转换,需要的朋友可以参考下
    2022-08-08
  • Vue不能下载xls以及文件乱码问题解决

    Vue不能下载xls以及文件乱码问题解决

    最近工作中遇到了一些问题,通过查找相关资料终于找到了相关的解决方法,这篇文章主要给大家介绍了关于Vue不能下载xls以及文件乱码问题解决的相关资料,需要的朋友可以参考下
    2022-04-04
  • vue3自定义dialog、modal组件的方法

    vue3自定义dialog、modal组件的方法

    这篇文章主要介绍了vue3自定义dialog、modal组件的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-01-01

最新评论