vue关于v-for循环添加样式

<div style="display: inline;margin: 10px" v-for="(item,index) in preparation.questionList" v-if="item">
            <el-button class="interaction-but" @click="interactiveQuestion(item,index)">(抢答){{item.questionName}}</el-button>
          </div>

这种循环遍历多个button的,我想实现根据下标index点击具体的一个button后添加背景颜色,标示已完成,需要怎么实现?使用:class会发生点击另一个,其他的button的已完成背景色消失。

<div style="display: inline;margin: 10px" v-for="(item,index) in preparation.questionList" v-if="item">
            <el-button class="interaction-but" :class="{'active':item.active}" @click="interactiveQuestion(item,index)">(抢答){{item.questionName}}</el-button>
          </div>


//js 
interactiveQuestion(item,index){
    this.preparation.questionList.map(x=>{x.acive=false});
    this.preparation.questionList[index].active=true;
}


//css
.interaction-but.active{
    background: red;
    color:#fff;
}

 

添加事件修饰符

用:class

背景色的显示隐藏可以用一个数组来存,每次点击时对应下标的值就改为true,需要隐藏时对应下标的值改为false