需求:
el-tree动态判断设置checkbox的disabled
常见的处理方式一:(不建议):
在接口获取到data后,进行递归,根据对应的算法,增加disabled的字段
缺点:
平白无故增加一次递归,效率和代码量不理想
常见的处理方式二:(适用与接口内有现成的boolean字段和disabled对应)
el-tree的props内设置{disabled : 'isDisabled '}(详见下方代码)
优点:
简单、快速
缺点:
对接口有一定要求,且拓展性和灵活性较弱
常见的处理方式三:(推荐,万金油方案,适用所有场景,且灵活度和拓展性高)
通过开头图片可知,disabled也可以接收一个回调方法,并根据其return值进行判断
(详见下方代码)
优点:
性能好,对后端无依赖,灵活度高,拓展性高,可灵活应对各种需求变更的场景
缺点:
暂无发现,欢迎补充
附代码
<!-- template -->
<el-tree
ref="elTree"
:data="data"
:props="defaultProps"
/>
<!-- script -->
data () {
return {
data: [],
defaultProps: {
children: 'children',
label: 'name',
//支持func和Boolean
// disabled : 'isDisabled ' //方案二、若有现成的boolean字段,可直接配置字符串
disabled (data, node) { //方案三、若需要算法建议使用func,return一个boolean值
return data.type === '1'
}
},
}
},