vue checkbox 实现父选,子全选。子全选,父选。子一个不选,父不选?

2018 年 6 月 26 日
 yantianqi

有没有类似的案例,或者思路?怎么控制?

4874 次点击
所在节点    程序员
11 条回复
Cacivy
2018 年 6 月 26 日
computed
lovedebug
2018 年 6 月 26 日
父组件传值或者传事件
简单的 computed,watch,eventbus,复杂的 vuex
一个兼职前端的想法😄
CDL
2018 年 6 月 26 日
这不叫 checkbox,这叫 tree
oaix
2018 年 6 月 26 日
1 楼的方法可以, 注意 computed 支持 setter, 你可以参考下这个 demohttps://jsfiddle.net/eywraw8t/111788/
reginald
2018 年 6 月 26 日
element checkbox 官方文档样例里面有
standbill
2018 年 6 月 26 日
Roycom
2018 年 6 月 26 日
计算属性应该不难
ericgui
2018 年 6 月 27 日
@standbill 牛逼
yantianqi
2018 年 6 月 27 日
@standbill 求源码
standbill
2018 年 6 月 27 日
@yantianqi 很久以前做的。回去了找下发给你。😁
standbill
2018 年 6 月 27 日
需要做递归组件。最内层的 选框有初始值 v。
大概就是这样。
checked:{

get(){
if(this.children&&this.children.length>0){
return this.children.filter(v=v.checked).length === this.children.length
} else {
return this.v
}
// 或者 every 也行。
}
set(value){
//
if(this.children&&this.children.length>0) {
this.children.forEach(v=>{
v.checked = value
})
} else {
// 最内层了
this.v = value
}
}


}

其他方法也有。
手动写递归赋值什么的,不依靠依赖收集。
还可以用 store 的 getters 返回函数,进行计算属性的依赖收集。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/465986

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX