当前位置:首页 > VUE

vue 多选框实现删除

2026-02-23 14:40:24VUE

Vue 多选框实现删除功能

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

数据绑定与多选框状态管理

使用 v-model 绑定多选框组到数组,存储选中项的 ID 或索引:

vue 多选框实现删除

<template>
  <div v-for="item in items" :key="item.id">
    <input 
      type="checkbox" 
      v-model="selectedItems" 
      :value="item.id"
    >
    {{ item.name }}
  </div>
</template>

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

删除逻辑实现

通过过滤原始数组实现删除,保留未选中的项:

vue 多选框实现删除

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

完整组件示例

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

<script>
export default {
  data() {
    return {
      items: [
        { id: 1, name: 'Apple' },
        { id: 2, name: 'Banana' },
        { id: 3, name: 'Orange' }
      ],
      selectedItems: []
    }
  },
  methods: {
    deleteSelected() {
      this.items = this.items.filter(
        item => !this.selectedItems.includes(item.id)
      )
      this.selectedItems = []
    }
  }
}
</script>

增强功能建议

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

methods: {
  toggleAll() {
    if (this.selectedItems.length === this.items.length) {
      this.selectedItems = []
    } else {
      this.selectedItems = this.items.map(item => item.id)
    }
  }
}

性能优化

对于大型数据集,建议使用虚拟滚动技术(如 vue-virtual-scroller)避免渲染所有 DOM 元素。

注意事项

  • 确保 :key 使用唯一标识符
  • 考虑添加删除确认对话框防止误操作
  • 对于服务端数据,需额外调用 API 删除接口

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

相关文章

vue 实现排序

vue 实现排序

Vue 实现排序的方法 使用计算属性实现排序 通过计算属性对数组进行排序,可以保持原始数据不变。示例代码展示了如何对列表按名称升序排序: <template> <div>…

vue 菜单实现

vue 菜单实现

Vue 菜单实现方法 在Vue中实现菜单功能可以通过多种方式完成,以下是几种常见的实现方法: 使用v-for动态生成菜单 通过数据驱动的方式动态渲染菜单项,适合菜单内容可能变化的场景: <t…

轮播vue实现

轮播vue实现

使用 Vue 实现轮播功能 基础轮播实现 安装依赖(如使用 Swiper): npm install swiper vue-awesome-swiper 组件代码示例: <template&…

vue实现框选

vue实现框选

Vue 实现框选功能 在 Vue 中实现框选功能通常需要监听鼠标事件,计算选区范围,并根据选区范围高亮或选中元素。以下是实现框选功能的关键步骤。 监听鼠标事件 在 Vue 模板中,为容器元素绑定鼠标…

vue实现tip

vue实现tip

Vue实现Tooltip的方法 使用Vue实现Tooltip可以通过多种方式完成,以下是几种常见的方法: 使用原生HTML的title属性 在Vue模板中直接使用HTML的title属性是最简单的实…

vue ui实现创建vue项目

vue ui实现创建vue项目

使用 Vue UI 创建 Vue 项目 Vue UI 是 Vue CLI 提供的图形化界面工具,可以通过可视化操作创建和管理 Vue 项目。 安装 Vue CLI 确保已安装 Node.js(建议版…