失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > vue全选反选

vue全选反选

时间:2020-05-20 09:34:14

相关推荐

vue全选反选

一、把数据渲染到页面

<li v-for="item in arr" :key="item.id"><input type="checkbox" v-model="item.c"/><span>{{item.name}}</span></li>

data() {return {arr: [{id:1,name: "猪八戒",c: false,},{id:2,name: "孙悟空",c: false,},{id:3,name: "唐僧",c: false,},{id:4,name: "白龙马",c: false,},],};},

二、当数据在父组件 并在父组件改变

小选框加入这个值

v-model="item.checked"/

全选框加入这个值

v-model="isAll"

函数写在computed里面

isAll:{get(){return this.arr.every(v=>v.c)//v.c是v.c===true的简写},set(val){this.arr.forEach(v=>{v.c=val})}}

三、当数据在父组件 子组件里使用、改变值

在子组件的小选框中将v-model="item.checked"改成以下内容

:checked="item.done"@change="iptChange(item.id)"

添加方法 把对应的id传给父组件

methods: {iptChange(id) {this.$emit('on-iptChange',id)},},

父组件接收方法

@on-iptChange='iptChangeFn'

父组件书写对应方法

iptChangeFn(id){let todo=this.list.find(v=>v.id==id)todo.done=!todo.done}

如果觉得《vue全选反选》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。