VUE数组根据索引删除数据,页面同时更新的实现方法

 更新时间:2023年07月03日 09:08:52   作者:张康佳  
这篇文章主要介绍了VUE数组根据索引删除数据,页面同时更新的实现方法,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

VUE数组根据索引删除数据,页面同时更新

项目场景

例如:

做了一个进制转换的工具,点击删除的时候需要表格实时进行更新。

问题描述

例如:

尝试了使用 this.$set 但是还是有问题。有时候会导致更新失败

解决方案

最后查了一会资料发现

this.tableData.splice(this.tableData.indexOf(index),1) 

是最有效果的

代码如下:

// 删除某个记录
    handleDelete(index, row) {
      // 尝试的第一种方法:(这个是错误的!!!会导致有时候失效)
      // let arr = this.tableData
      // for(var i=index,len=arr.length-1;i<len;i++) {
      //   arr[i]=arr[i+1]
      // }
      // arr.length = len
      // this.tableData = Object.assign({}, this.tableData, arr)
      //this.tableData = arr
      //this.$set(this.tableData, arr)
      // 这样才有效果
      this.tableData.splice(this.tableData.indexOf(index),1);
    }

VUE数组删除(对象)单条删除,多条删除

数组单行删除

<!--
 * @Descripttion:单行删除
 * @version: 0.0.1
 * @Author: PengShuai
 * @Date: 2022-06-01 17:30:04
 * @LastEditors: PengShuai
 * @LastEditTime: 2022-06-01 17:30:04
-->
    // 数据源
    demoData: [
      {
        id: '1',
        name: '奥巴马',
      },
      {
        id: '2',
        name: '狗头',
      },
      {
        id: '3',
        name: '卢锡安',
      },
      {
        id: '4',
        name: '盖伦',
      },
      {
        id: '5',
        name: '赵信',
      },
    ],
	methods: {
	  demo() {
	    console.log('全部数据 5条')
	    console.log(this.demoData)
	    //? 单选
	    //! 删除单行数据
	    const del = '3'
	    this.demoData = this.demoData.filter((o) => {
	      return o.id !== del
	    })
	    console.log('删除单行所返回的数据 4条')
	    console.log(this.demoData)
	  },
},

结果

数组多行删除(同一数据源)

<!--
     * @Descripttion:单行删除
     * @version: 0.0.1
     * @Author: PengShuai
     * @Date: 2022-06-09 14:17:04
     * @LastEditors: PengShuai
     * @LastEditTime: 2022-06-09 14:17:04
    -->
    demo() {
      console.log('原数据')
      console.log(this.demoData)
      //? 多选
      //! 删除多行数据
      const selectData = [
        {
          id: '1',
          name: '奥巴马',
        },
        {
          id: '4',
          name: '盖伦',
        },
      ]
      console.log('删除数据')
      console.log(selectData)
      let newData = this.demoData.filter(
        (a) => !selectData.some((b) => a.id === b.id)
      )
      console.log('删除后数据')
      console.log(newData)
    }

结果

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • vue parseHTML函数源码解析 AST预备知识

    vue parseHTML函数源码解析 AST预备知识

    这篇文章主要为大家介绍了vue parseHTML函数源码解析 AST预备知识示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-07-07
  • Element实现动态增加多个输入框并校验

    Element实现动态增加多个输入框并校验

    本文主要介绍了Element实现动态增加多个输入框并校验,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-07-07
  • Spring Boot/VUE中路由传递参数的实现代码

    Spring Boot/VUE中路由传递参数的实现代码

    在路由时传递参数,一般有两种形式,一种是拼接在url地址中,另一种是查询参数。这篇文章主要介绍了Spring Boot/VUE中路由传递参数,需要的朋友可以参考下
    2018-03-03
  • antd配置config-overrides.js文件的操作

    antd配置config-overrides.js文件的操作

    这篇文章主要介绍了antd配置config-overrides.js文件的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-10-10
  • vite中使用@配置路径别名过程示例

    vite中使用@配置路径别名过程示例

    这篇文章主要为大家介绍了vite中使用@配置路径别名过程示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-08-08
  • Vue中传递自定义参数到后端、后端获取数据并使用Map接收参数

    Vue中传递自定义参数到后端、后端获取数据并使用Map接收参数

    有些传递的参数是直接拼接到URL地址栏中的、但是为了统一管理、不能将传递的参数直接拼接到地址栏中,接下来通过本文给大家介绍Vue中传递自定义参数到后端、后端获取数据并使用Map接收参数,感兴趣的朋友一起看看吧
    2022-10-10
  • Vue项目中封装组件的简单步骤记录

    Vue项目中封装组件的简单步骤记录

    众所周知组件(component)是vue.js最强大的功能之一,它可以实现功能的复用,以及对其他逻辑的解耦,下面这篇文章主要给大家介绍了关于Vue项目中封装组件的相关资料,需要的朋友可以参考下
    2021-09-09
  • Vue实现tab切换的两种方法示例详解

    Vue实现tab切换的两种方法示例详解

    这篇文章主要介绍了Vue实现tab切换的两种方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-11-11
  • Vue项目通过network的ip地址访问注意事项及说明

    Vue项目通过network的ip地址访问注意事项及说明

    这篇文章主要介绍了Vue项目通过network的ip地址访问注意事项及说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-09-09
  • vue 实现小程序或商品秒杀倒计时

    vue 实现小程序或商品秒杀倒计时

    这篇文章主要介绍了vue 实现倒计时秒杀的组件,紧接着通过实例代码给大家介绍小程序或者vue商品秒杀倒计时功能,需要的朋友可以参考下
    2019-04-04

最新评论