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 项目部署在子目录下时hash vs history 的真实区别解析

    Vue 项目部署在子目录下时hash vs history 的真实区别解析

    Vue子目录部署中,hash模式稳定且无需后端配合,而history模式需要后端支持否则容易出问题,子目录部署下,hash模式天生安全且页面刷新不会404,而history模式需要正确配置Nginx才能正常工作,本文给大家介绍Vue部署在子目录下时hash vs history区别,感兴趣的朋友一起看看吧
    2026-01-01
  • vue项目打包后proxyTable代理失效问题及解决

    vue项目打包后proxyTable代理失效问题及解决

    这篇文章主要介绍了vue项目打包后proxyTable代理失效问题及解决方案,具有很好的参考价值,希望对大家有所帮助。
    2023-05-05
  • Vue 组件间的样式冲突污染

    Vue 组件间的样式冲突污染

    本篇文章主要介绍了Vue 组件间的样式冲突污染,当多个样式出现时,就会导致样式冲突,本文介绍了具体解决方法
    2017-08-08
  • vue实现拖拽排序效果

    vue实现拖拽排序效果

    这篇文章主要为大家详细介绍了vue实现拖拽排序效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-08-08
  • vue通过url方式展示PDF的几种方法

    vue通过url方式展示PDF的几种方法

    小编最近接手的项目中有个需求,前端显示后端返回的PDF格式的文件,下面这篇文章主要给大家介绍了关于vue通过url方式展示PDF的几种方法,需要的朋友可以参考下
    2023-01-01
  • Vue中使用防抖与节流的方法

    Vue中使用防抖与节流的方法

    这篇文章主要为大家介绍了Vue中使用防抖与节流的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-01-01
  • element 动态合并表格的步骤

    element 动态合并表格的步骤

    这篇文章主要介绍了element 动态合并表格的步骤,帮助大家更好的理解和使用vue,感兴趣的朋友可以了解下
    2020-12-12
  • Yarn与Lerna管理monorepo使用详解

    Yarn与Lerna管理monorepo使用详解

    这篇文章主要为大家介绍了Yarn与Lerna管理monorepo的使用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-07-07
  • 基于vue.js组件实现分页效果

    基于vue.js组件实现分页效果

    这篇文章主要为大家详细介绍了基于vue.js组件实现分页效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-12-12
  • Vue中添加过渡效果的方法

    Vue中添加过渡效果的方法

    本篇文章主要介绍了Vue中添加过渡效果的方法,Vue 在插入、更新或者移除 DOM 时,提供多种不同方式的应用过渡效果,有兴趣的同学可以了解一下。
    2017-03-03

最新评论