当前位置:首页 > VUE

vue实现选中删除

2026-02-19 05:50:54VUE

实现选中删除功能

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

数据绑定与列表渲染

使用v-for指令渲染列表数据,并为每个项添加复选框:

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

定义数据与选中状态

在Vue组件中定义数据结构和选中状态:

vue实现选中删除

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

实现删除逻辑

添加删除选中项的方法:

methods: {
  deleteSelected() {
    this.items = this.items.filter(
      item => !this.selectedItems.includes(item.id)
    )
    this.selectedItems = []
  }
}

完整组件示例

将上述部分组合成完整组件:

vue实现选中删除

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

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

增强功能

可以添加全选/取消全选功能:

<div>
  <input type="checkbox" v-model="selectAll" @change="toggleAll">
  <span>全选</span>
</div>
computed: {
  selectAll: {
    get() {
      return this.items.length === this.selectedItems.length
    },
    set(value) {
      this.selectedItems = value
        ? this.items.map(item => item.id)
        : []
    }
  }
},
methods: {
  toggleAll() {
    this.selectAll = !this.selectAll
  }
}

注意事项

确保为列表项设置唯一的key属性,这有助于Vue高效更新DOM

删除操作会修改原始数组,如果需要保留原始数据,可以先创建副本进行操作

对于大型列表,考虑使用虚拟滚动技术优化性能

标签: vue
分享给朋友:

相关文章

vue的艾特功能实现

vue的艾特功能实现

Vue 的 @ 功能实现 在 Vue 中实现类似社交平台的 @ 功能,通常涉及输入框的监听、用户匹配和选择插入。以下是具体实现方法: 监听输入框内容 使用 v-model 绑定输入框内容,并通过 @…

vue全选实现

vue全选实现

Vue 全选实现方法 在 Vue 中实现全选功能通常涉及数据绑定和事件处理。以下是几种常见的实现方式: 基础实现方式 <template> <div> <…

vue实现cs

vue实现cs

Vue 实现 CS(Client-Side)渲染的常见方法 Vue.js 是一个用于构建用户界面的渐进式框架,默认采用客户端渲染(CSR)。以下是几种常见的实现方式: 使用 Vue CLI 创建项目…

vue实现ajax

vue实现ajax

Vue 中实现 AJAX 的几种方法 在 Vue 中实现 AJAX 请求可以通过原生 JavaScript 的 XMLHttpRequest、第三方库如 axios 或 fetch API 来完成。以…

vue 实现报价

vue 实现报价

Vue 实现报价功能 在 Vue 中实现报价功能通常涉及前端表单交互、数据计算和与后端 API 的通信。以下是实现报价功能的几种常见方法: 表单设计与数据绑定 使用 Vue 的 v-model 指…

vue实现Pop

vue实现Pop

Vue 实现 Popover 组件的方法 使用 Vue 内置指令 v-show/v-if 和事件监听 通过 Vue 的指令和事件绑定实现基础的 Popover 功能。定义一个布尔值控制 Popover…