组件|Element:Tree 树形控件 详细学习
简述 📖 :虽然经常使用element组件,但是树形控件🌲 用的相对少一些,脑子回想一下,发现对这个组件的概念几乎为0️⃣ 。🆗那就打开我的电脑,穿上女友👧 买的Zara的厚厚的棉服(像个大笨熊 🐻 😆 ),重新撸一下树形控件的知识点,🛫 。
官网概念
- Tree 树形控件:用清晰的层次结构展示信息,可展开或折叠
代码示例
<template>
<div>
<h3>测试树形控件</h3>
<!--
empty-text :data(源数据)为空是显示的内容
check-strictly : 在显示复选框的情况下,是否严格的遵循父子不互相关联的做法,默认为 false
default-expand-all:是否默认展开所有节点 ,默认为false
-->
<el-tree ref="tree" :data="data" empty-text='暂无' :props="defaultProps" node-key="id" :current-node-key='nodeKey'
check-strictly default-expand-all highlight-current show-checkbox @node-click="handleNodeClick"
@check-change="handleCheckChange"></el-tree>
</div>
</template>
<script>
export default {
data() {
return {
nodeKey:'41',
data: [{
id: 1,
label: '一级 1',
children: [{
id: 41,
label: '二级 1-1',
},
{
id: 5214,
label: '二级 1-2',
},
{
id: 25356,
label: '二级 1-3',
},
{
id: 755325,
label: '二级 1-4',
},
]
}, {
id: 2,
label: '一级 2',
children: [{
id: 8,
label: '二级 2-1',
children: [{
id: 14,
label: '三级 2-1-1'
}]
}, {
id: 9,
label: '二级 2-2',
children: [{
id: 13,
label: '三级 2-2-1'
}]
}]
}, {
id: 3,
label: '一级 3',
children: [{
id: 10,
label: '二级 3-1',
children: [{
label: '三级 3-1-1'
}]
}, {
id: 11,
label: '二级 3-2',
children: [{
id: 12,
label: '三级 3-2-1'
}]
}]
}],
defaultProps: {
children: 'children', //指定子树为节点对象的某个属性值--选择一个对象作为子节点使用
label: 'label' //指定节点标签为节点对象的某个属性值--选择一个值作为label显示
}
};
},
created(){
//设置当前节点的方法(目前我这么用)
this.$nextTick(() => {
this.$refs['tree'].setCurrentKey(this.nodeKey)
console.log(this.$refs.tree.getCurrentKey());
})
},
methods: {
/*
node-click 节点被点击时的回调
三个参数,依次为:
1.传递给 data 属性的数组中该节点所对应的对象
2.节点对应的 Node
3.节点组件本身。
*/
handleNodeClick(data1, data2, data3) {
console.log(data1); //传递给 data 属性的数组中该节点所对应的对象
// console.log(data2);//节点对应的 Node
// console.log(data3);//节点组件本身
/*
getCurrentKey 获取当前被选中节点的 key,使用此方法必须设置 node-key 属性,若没有节点被选中则返回 null
*/
console.log(this.$refs.tree.getCurrentKey());
},
/*
check-change 节点选中状态发生变化时的回调
三个参数,依次为:
1.传递给 data 属性的数组中该节点所对应的对象
2.节点本身是否被选中
3.节点的子树中是否有被选中的节点
*/
handleCheckChange(data, checked, indeterminate) {
// console.log(data);
/*
getCheckedNodes 若节点可被选择(即 show-checkbox 为 true),则返回目前被选中的节点所组成的数组
参数:(leafOnly, includeHalfChecked) 接收两个 boolean 类型的参数,
1. 是否只是叶子节点,默认值为 false
2. 是否包含半选节点,默认值为 false
*/
console.log(this.$refs.tree.getCheckedNodes(true,false),'node');
/*
getCheckedKeys 若节点可被选择(即 show-checkbox 为 true),则返回目前被选中的节点的 key 所组成的数组
参数:(leafOnly) 接收一个 boolean 类型的参数,
若为 true 则仅返回被选中的叶子节点的 keys,默认值为 false
*/
console.log(this.$refs.tree.getCheckedKeys(false),'key');
/*
getHalfCheckedNodes 若节点可被选择(即 show-checkbox 为 true),则返回目前半选中的节点所组成的数组
*/
console.log(this.$refs.tree.getHalfCheckedNodes());
/*
getHalfCheckedKeys 若节点可被选择(即 show-checkbox 为 true),则返回目前半选中的节点的 key 所组成的数组
*/
console.log(this.$refs.tree.getHalfCheckedKeys());
},
}
};
</script>
<style lang="">
</style>暂时就先整这么多了,没有搞完。后期遇到新知识,继续来补全。
不忘初心,人就容易走着走着就被周边的环境所影响,有时得意忘形,有时东怒西怨,完全忘记了刚进入新环境时的心里许下的诺言 ---- 时常提醒正在默默努力的自己。
















