答:
<template>
<div class="about">
<div v-for="(item,i) in list" class="btn" :class="item.status?'active':''" @click="changeBtn(i)">{{i}}</div>
</div>
</template>
<script lang="ts">
import {Component, Vue} from 'vue-property-decorator';
@Component
export default class ButtonChange extends Vue {
private list:any = [{
name: '1',
status: false,
},{
name: '2',
status: false,
},{
name: '3',
status: false,
},{
name: '4',
status: false,
},{
name: '5',
status: false,
},{
name: '6',
status: false,
}];
private changeBtn ( i :number ) {
this.list[i].status = !this.list[i].status;
}
}
</script>
<style scoped lang="scss">
.btn {
cursor: pointer;
width: 50px;
height: 20px;
line-height: 20px;
border-radius: 4px;
background: #ccc;
margin: 0 8px 8px;
float: left;
}
.btn.active{
background: #42b983;
}
</style>
参考一下,这是你想要的结果吗?
就是用双向绑定改变item的状态,切换class。