vue实现删除卡片
Vue 实现删除卡片功能
在 Vue 中实现删除卡片功能通常涉及以下几个步骤:
数据绑定与渲染
使用 v-for 指令循环渲染卡片列表,确保每个卡片有唯一的 key 标识。例如:
<div v-for="(card, index) in cards" :key="card.id" class="card">
{{ card.content }}
<button @click="deleteCard(index)">删除</button>
</div>
定义数据和方法
在 Vue 实例的 data 中定义卡片数组,并在 methods 中实现删除逻辑:
data() {
return {
cards: [
{ id: 1, content: '卡片1' },
{ id: 2, content: '卡片2' }
]
}
},
methods: {
deleteCard(index) {
this.cards.splice(index, 1)
}
}
使用唯一标识删除 如果卡片有唯一 ID(如从后端获取),推荐通过 ID 删除而非索引:
deleteCard(id) {
this.cards = this.cards.filter(card => card.id !== id)
}
添加确认提示 为避免误删,可加入确认对话框:
deleteCard(id) {
if (confirm('确定删除此卡片?')) {
this.cards = this.cards.filter(card => card.id !== id)
}
}
与后端交互 若需同步到服务器,调用 API 接口:
async deleteCard(id) {
try {
await axios.delete(`/api/cards/${id}`)
this.cards = this.cards.filter(card => card.id !== id)
} catch (error) {
console.error('删除失败', error)
}
}
动画效果 为提升用户体验,可添加过渡动画:
<transition-group name="fade">
<div v-for="card in cards" :key="card.id">
<!-- 卡片内容 -->
</div>
</transition-group>
CSS 部分:
.fade-enter-active, .fade-leave-active {
transition: opacity 0.5s;
}
.fade-enter, .fade-leave-to {
opacity: 0;
}






