当前位置:首页 > VUE

vue实现多远删除

2026-01-17 15:20:01VUE

实现 Vue 多选删除功能

数据准备 在 Vue 组件中定义一个数组存储数据和一个数组存储选中的项

data() {
  return {
    items: [
      { id: 1, name: 'Item 1' },
      { id: 2, name: 'Item 2' },
      { id: 3, name: 'Item 3' }
    ],
    selectedItems: []
  }
}

模板部分 使用 v-model 绑定复选框选择状态

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

删除方法实现

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

使用 Vuex 管理状态

Store 配置

const store = new Vuex.Store({
  state: {
    items: [...],
    selectedItems: []
  },
  mutations: {
    DELETE_SELECTED(state) {
      state.items = state.items.filter(
        item => !state.selectedItems.includes(item.id)
      )
      state.selectedItems = []
    }
  }
})

组件调用

methods: {
  deleteSelected() {
    this.$store.commit('DELETE_SELECTED')
  }
}

批量删除 API 调用

与后端交互

async deleteSelected() {
  try {
    await axios.delete('/api/items', {
      data: { ids: this.selectedItems }
    })
    this.items = this.items.filter(
      item => !this.selectedItems.includes(item.id)
    )
    this.selectedItems = []
  } catch (error) {
    console.error('删除失败:', error)
  }
}

全选/反选功能扩展

添加全选复选框

<input 
  type="checkbox" 
  v-model="allSelected"
  @change="toggleAll"
>
全选

全选逻辑实现

computed: {
  allSelected: {
    get() {
      return this.selectedItems.length === this.items.length
    },
    set(value) {
      this.selectedItems = value 
        ? this.items.map(item => item.id) 
        : []
    }
  }
}

vue实现多远删除

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

相关文章

vue如何实现注册

vue如何实现注册

实现用户注册功能 在Vue中实现注册功能通常需要结合前端表单和后端API交互。以下是完整的实现方案: 创建注册表单组件 注册表单需要包含用户名、邮箱、密码等基本字段,并进行表单验证: <…

vue表格实现教学

vue表格实现教学

Vue 表格实现方法 使用原生HTML表格 在Vue模板中直接使用HTML的<table>标签,结合v-for动态渲染数据: <template> <table&g…

vue实现购物按钮

vue实现购物按钮

Vue 购物按钮实现方法 基础按钮实现 使用 Vue 的模板语法创建基础按钮组件,绑定点击事件处理购物逻辑: <template> <button @click="addToC…

vue实现裁剪头像

vue实现裁剪头像

Vue 实现头像裁剪功能 实现头像裁剪功能通常需要结合第三方库如 cropperjs 或 vue-cropper。以下是两种常见实现方式: 使用 vue-cropper 库 安装依赖: n…

vue实现简单的弹窗

vue实现简单的弹窗

使用 Vue 实现简单弹窗 组件基础结构 创建一个名为 Modal.vue 的组件文件,包含模板、脚本和样式部分: <template> <div class="modal-…

vue实现微博印象

vue实现微博印象

实现微博印象功能的核心思路 微博印象功能通常指用户发布微博后,系统自动分析文本内容并提取关键词或标签,以可视化形式展示。Vue实现该功能需要结合文本分析、关键词提取和前端渲染技术。 文本分析与关键…