当前位置:首页 > 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"
>
全选

全选逻辑实现

vue实现多远删除

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 中实现点击样式可以通过多种方式完成,以下是几种常见的方法: 方法一:使用 v-bind:class 动态绑定类名 通过数据驱动的方式动态切换类名,结合 CS…

vue广告实现

vue广告实现

Vue 广告实现方法 在 Vue 项目中实现广告功能可以通过多种方式完成,具体取决于广告类型和需求。以下是几种常见的实现方法: 使用第三方广告平台 许多广告平台如 Google AdSense、百…

vue实现详情

vue实现详情

Vue 实现详情页的常见方法 使用动态路由 在 Vue Router 中配置动态路由参数,通过 $route.params 获取详情 ID。示例路由配置: { path: '/detail/:i…

vue实现标签

vue实现标签

Vue 实现标签的方法 在 Vue 中实现标签功能可以通过多种方式完成,以下是几种常见的方法: 使用动态组件 动态组件可以根据不同的条件渲染不同的标签内容。通过 :is 属性动态绑定组件名,实现标签…

vue实现计算

vue实现计算

Vue 实现计算的方法 在 Vue 中实现计算功能可以通过多种方式完成,主要包括计算属性(computed)、方法(methods)和侦听器(watch)。以下是具体的实现方法: 计算属性(Comp…

vue  实现tab

vue 实现tab

实现 Tab 切换功能 在 Vue 中实现 Tab 切换功能可以通过动态组件或条件渲染完成。以下是两种常见方法: 使用 v-if 或 v-show 实现条件渲染 通过绑定 currentTab 变量…