当前位置:首页 > VUE

vue实现多选删除

2026-03-10 02:56:05VUE

Vue 实现多选删除功能

在 Vue 中实现多选删除功能通常涉及以下几个关键步骤:

数据绑定与多选状态管理

创建数据列表和选中状态数组,使用 v-model 绑定复选框:

vue实现多选删除

<template>
  <div v-for="(item, index) in items" :key="item.id">
    <input type="checkbox" v-model="selectedItems" :value="item.id">
    {{ item.name }}
  </div>
  <button @click="deleteSelected">删除选中项</button>
</template>

<script>
export default {
  data() {
    return {
      items: [
        { id: 1, name: '项目1' },
        { id: 2, name: '项目2' }
      ],
      selectedItems: []
    }
  }
}
</script>

删除逻辑实现

通过过滤原始数组实现删除操作:

methods: {
  deleteSelected() {
    this.items = this.items.filter(
      item => !this.selectedItems.includes(item.id)
    )
    this.selectedItems = [] // 清空选中状态
  }
}

表格场景的优化实现

当数据以表格形式展示时,可结合 el-table(Element UI)实现:

vue实现多选删除

<el-table
  :data="tableData"
  @selection-change="handleSelectionChange">
  <el-table-column type="selection" width="55"></el-table-column>
  <el-table-column prop="name" label="名称"></el-table-column>
</el-table>

<el-button @click="batchDelete">批量删除</el-button>
data() {
  return {
    tableData: [...],
    multipleSelection: []
  }
},
methods: {
  handleSelectionChange(val) {
    this.multipleSelection = val
  },
  batchDelete() {
    const ids = this.multipleSelection.map(item => item.id)
    this.tableData = this.tableData.filter(
      item => !ids.includes(item.id)
    )
  }
}

全选功能扩展

添加全选/反选功能提升用户体验:

<input type="checkbox" @change="toggleAll" :checked="isAllSelected">
<span>全选</span>
computed: {
  isAllSelected() {
    return this.selectedItems.length === this.items.length
  }
},
methods: {
  toggleAll(e) {
    this.selectedItems = e.target.checked
      ? this.items.map(item => item.id)
      : []
  }
}

后端交互处理

实际项目中通常需要调用API进行删除:

async batchDelete() {
  try {
    await api.deleteItems(this.selectedItems)
    this.fetchData() // 重新获取数据
    this.selectedItems = []
  } catch (error) {
    console.error('删除失败', error)
  }
}

注意事项

  • 使用 :key 时建议绑定唯一标识符而非数组索引
  • 大量数据时考虑分页处理避免性能问题
  • 删除前可添加确认对话框防止误操作
  • 根据项目需求选择本地删除或API交互方式

标签: 多选vue
分享给朋友:

相关文章

vue实现公式

vue实现公式

在Vue中实现公式展示或计算可以通过多种方式实现,以下为具体方法: 使用模板插值与计算属性 若公式较简单,可直接在模板中使用插值表达式或计算属性。例如计算圆的面积: <template>…

vue 实现单选

vue 实现单选

使用 v-model 绑定单选值 在 Vue 中,可以通过 v-model 绑定单选按钮的值。定义一个响应式数据(如 selectedOption),并将其与单选按钮的 value 属性关联。…

vue实现必填

vue实现必填

Vue 实现表单必填验证的方法 在Vue中实现表单必填验证可以通过多种方式完成,以下是几种常见的方法: 使用HTML5原生属性 最简单的必填验证可以通过HTML5的required属性实现: &l…

vue mvvm实现

vue mvvm实现

Vue MVVM 实现原理 Vue.js 是一个基于 MVVM(Model-View-ViewModel)模式的框架,其核心是通过数据绑定和响应式系统实现视图与数据的自动同步。以下是 Vue 实现 M…

vue 实现循环

vue 实现循环

Vue 实现循环的方法 在 Vue 中,可以使用 v-for 指令来实现循环渲染列表数据。以下是几种常见的循环实现方式: 基本数组循环 <template> <ul>…

vue实现回顶部

vue实现回顶部

实现方法一:使用 window.scrollTo 在Vue组件中,可以通过调用 window.scrollTo 方法平滑滚动到页面顶部。该方法接受一个配置对象,指定滚动行为为平滑(smooth)。…