vue怎么实现选中删除
Vue 实现选中删除功能
在 Vue 中实现选中删除功能,可以通过以下方法完成:
数据绑定与事件处理
在模板中使用 v-model 绑定复选框的选中状态,通过 v-for 渲染列表项。为删除按钮添加点击事件,触发删除逻辑。

<template>
<div>
<ul>
<li v-for="(item, index) in items" :key="item.id">
<input type="checkbox" v-model="item.checked">
{{ item.name }}
<button @click="deleteItem(index)">删除</button>
</li>
</ul>
<button @click="deleteSelected">删除选中项</button>
</div>
</template>
定义数据与方法
在 Vue 实例的 data 中定义列表数据,每个对象包含 checked 属性表示选中状态。在 methods 中实现删除逻辑。
<script>
export default {
data() {
return {
items: [
{ id: 1, name: '项目1', checked: false },
{ id: 2, name: '项目2', checked: false },
{ id: 3, name: '项目3', checked: false }
]
}
},
methods: {
deleteItem(index) {
this.items.splice(index, 1)
},
deleteSelected() {
this.items = this.items.filter(item => !item.checked)
}
}
}
</script>
使用计算属性优化 如果需要频繁操作选中项,可以使用计算属性动态获取当前选中项的数量或状态。

computed: {
selectedCount() {
return this.items.filter(item => item.checked).length
}
}
添加提示与确认 在执行删除操作前,可以添加确认对话框提升用户体验。
methods: {
deleteSelected() {
if (confirm('确定要删除选中项吗?')) {
this.items = this.items.filter(item => !item.checked)
}
}
}
完整组件示例 以下是一个完整的 Vue 单文件组件示例,包含选中删除功能:
<template>
<div>
<p>选中项数量: {{ selectedCount }}</p>
<ul>
<li v-for="(item, index) in items" :key="item.id">
<input type="checkbox" v-model="item.checked">
{{ item.name }}
<button @click="deleteItem(index)">删除</button>
</li>
</ul>
<button @click="deleteSelected" :disabled="selectedCount === 0">
删除选中项
</button>
</div>
</template>
<script>
export default {
data() {
return {
items: [
{ id: 1, name: '项目1', checked: false },
{ id: 2, name: '项目2', checked: false },
{ id: 3, name: '项目3', checked: false }
]
}
},
computed: {
selectedCount() {
return this.items.filter(item => item.checked).length
}
},
methods: {
deleteItem(index) {
this.items.splice(index, 1)
},
deleteSelected() {
if (confirm(`确定要删除 ${this.selectedCount} 个选中项吗?`)) {
this.items = this.items.filter(item => !item.checked)
}
}
}
}
</script>
以上方法实现了 Vue 中的选中删除功能,可以根据实际需求进行调整和扩展。






