当前位置:首页 > 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 实现目录功能 在 Vue 中实现目录功能通常需要动态生成目录结构,并支持点击跳转到对应内容区域。以下是几种常见实现方式: 基于滚动监听和动态生成 安装依赖(如需): npm install…

vue实现图片搜索

vue实现图片搜索

Vue实现图片搜索功能 使用HTML5的File API获取图片 通过<input type="file">元素让用户选择图片文件,使用FileReader对象读取图片数据。 <t…

前端多线程实现vue

前端多线程实现vue

前端多线程与Vue的结合 在Vue中实现多线程通常通过Web Worker技术完成。Web Worker允许在后台线程中运行脚本,避免阻塞主线程,适合处理计算密集型任务。 使用Web Worker…

vue如何实现放大缩小

vue如何实现放大缩小

Vue实现放大缩小功能的方法 在Vue中实现元素的放大缩小功能,可以通过CSS变换、第三方库或直接操作DOM样式来实现。以下是几种常见的方法: 使用CSS transform属性 通过绑定Vue的d…

vue实现点击页面切换

vue实现点击页面切换

实现点击页面切换功能 在Vue中实现点击页面切换功能,可以通过路由跳转或组件动态渲染两种方式完成。以下是具体实现方法: 使用Vue Router实现页面跳转 安装Vue Router后,在项目中…

vue怎么实现文件树

vue怎么实现文件树

Vue 实现文件树的方法 使用递归组件 递归组件是处理嵌套数据结构的理想方式。文件树通常包含文件夹和文件的嵌套结构,适合用递归组件实现。 <template> <ul>…