vue全选与反选以及通过使用如何filter删除数据?
在vue学习经常遇到的一些基本问题,下面是购物车里面的部分功能,分享给初学者,直接上源码:
<style> table, td, th{ border:1px solid #ebebeb; border-collapse:collapse; text-align: center; } table { width:500px; } </style> <body> <div > <table> <thead> <tr> <th>选中个数{{checkedCount}}<input type="checkbox" v-model="allchecked" /></th> <th>name</th> <th>age</th> <th>操作</th> </tr> </thead> <tbody> <tr v-for="item in list"> <td><input type="checkbox" v-model="item.checked" /></td> <td>{{item.name}}</td> <td>{{item.age}}</td> <td><a href="###" @click="Delete(item)">{{item.anniu}}</a></td> </tr> </tbody> </table> <input type="button" name="" /> </div> <script type="text/javascript"> var list=[ { "name":"小明", "age":23, "checked":true, "anniu":"删除" }, { "name":"小刚", "age":23, "checked":true, "anniu":"删除" }, { "name":"小王", "age":25, "checked":true, "anniu":"删除" }, { "name":"小三", "age":26, "checked":false, "anniu":"删除" } ] new Vue({ el:'#app', data:{ list }, computed:{ allchecked:{ get:function(){ return this.list.length==this.checkedCount; }, set:function(val){ //val 就是点击之后,全选按钮的v-model值状态,勾上true。未勾false this.list.forEach(item =>{ item.checked =val; }) } }, checkedCount:{ get:function(){ var i=0; this.list.forEach(item=>{ if(item.checked ===true){ i++; } }) return i; } } },methods:{ btn:function(){ console.log(JSON.stringify(this.list)) },Delete:function(p){ this.list = this.list.filter(item=>item!==p) console.log(this.list) } } }) </script> </body> </html>
本人一贯的理念就是大家有更好的可以分享出来,与大家共同学习,共同进步