组件|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>
-
暂时就先整这么多了,没有搞完。后期遇到新知识,继续来补全。
-
不忘初心,人就容易走着走着就被周边的环境所影响,有时得意忘形,有时东怒西怨,完全忘记了刚进入新环境时的心里许下的诺言 ---- 时常提醒正在默默努力的自己。