Vue.js Vue:将类添加到v-for中的一个项

Vue.js Vue:将类添加到v-for中的一个项,vue.js,vuejs2,Vue.js,Vuejs2,我有一个v-for循环中的项目列表。我在@click上有一个函数,它将删除该项目,但我想在单击该项目时给它一个类,以便在短时间内更改背景颜色,以便用户知道他们单击了该项目,并且该项目正在删除。在我的deleteItem函数中,我将deletingItem设置为true,但这显然会产生问题,因为它会将该类应用于In v-for中的所有div。解决这个问题的最佳方法是什么,使它只应用于我单击的div <div :class="{'box': true, 'deleting-it

我有一个v-for循环中的项目列表。我在@click上有一个函数,它将删除该项目,但我想在单击该项目时给它一个类,以便在短时间内更改背景颜色,以便用户知道他们单击了该项目,并且该项目正在删除。在我的
deleteItem
函数中,我将
deletingItem
设置为true,但这显然会产生问题,因为它会将该类应用于In v-for中的所有div。解决这个问题的最佳方法是什么,使它只应用于我单击的div

   <div :class="{'box': true, 'deleting-item': deletingItem}" v-for="(item,index) in items">
        <div @click="deleteItem(item,index)>Delete</div>
    </div>


您需要将单击的项保存在数据属性中

<template>
<div>
  <div v-for="(item, index) in items">
    <button @click="deleteItem(index)" :class="{'delete-in-progress-class': index === indexOfDeletedItem}> {{item}} </button> 
  </div>
</div>
</template>
<script>
export default {
  data() {
    return {
      items: ['a', 'b', 'c']
      indexOfDeletedItem: null
    }
  },
  methods: {
    deleteItem(index) {
      this.indexOfDeletedItem = index;
      setTimeout(() => { this.items.splice(index, 1); this.indexOfDeletedItem = null }, 1000); //delete item after 1s
    }
  }
}
</script>
<style>
.delete-in-progress-class {
  background: red;
}
</style>


您需要将单击的项保存在数据属性中

<template>
<div>
  <div v-for="(item, index) in items">
    <button @click="deleteItem(index)" :class="{'delete-in-progress-class': index === indexOfDeletedItem}> {{item}} </button> 
  </div>
</div>
</template>
<script>
export default {
  data() {
    return {
      items: ['a', 'b', 'c']
      indexOfDeletedItem: null
    }
  },
  methods: {
    deleteItem(index) {
      this.indexOfDeletedItem = index;
      setTimeout(() => { this.items.splice(index, 1); this.indexOfDeletedItem = null }, 1000); //delete item after 1s
    }
  }
}
</script>
<style>
.delete-in-progress-class {
  background: red;
}
</style>


您必须使用项目相关的
item.deletingItem
,而不是全局的
deletingItem
。您必须使用项目相关的
item.deletingItem
,而不是全局的
deletingItem