🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
[TOC] >[success] # vue复选框逻辑 项目中有一个需求,要求4个按钮,点击每个按钮就个数组中添加一个值,再次点击时候如果数组中有这个值就需要删除这个值,并且还要选中时候添加样式,代码如下: 1. html代码部分: ~~~javascript <template> <div> <button :class="item.type ? 'style1' : 'style2'" v-for="(item,index) in list" :key="index" @click="clickBtn(item)"> {{item.title}} </button> </div> </template> ~~~ 2. vuejs代码部分: ~~~javascript <script> export default { data(){ return{ list: [ { title: "按钮1", value: "btn1", type:false }, { title: "按钮2", value: "btn2", type:false }, { title: "按钮3", value: "btn3", type:false }, { title: "按钮4", value: "btn4", type:false } ], list2: [] } }, methods:{ clickBtn(val){ // 按钮的样式直接取反 val.type = !val.type // indexOf如果有值会返回这个值在数组中的索引值 let judgment= this.list2.indexOf(val.value) if(judgment !== -1){ this.list2.splice(judgment,1) }else{ this.list2.push(val.value) } } } } </script> ~~~ 3. css样式部分: ~~~ <style> .style1{ background: red; } .style2{ background: blue } </style> ~~~