el-tree 懒加载,展开默认选中第一个
时间: 2023-08-07 16:02:35 浏览: 117
你可以使用 el-tree 组件的 lazy 属性来实现懒加载,同时通过设置 default-expanded-keys 属性来展开默认选中的节点。下面是一个示例代码,你可以参考:
```html
<template>
<div>
<el-tree
:data="treeData"
:lazy="true"
:load="loadData"
:default-expanded-keys="[defaultExpandedKey]"
@node-click="handleNodeClick"
></el-tree>
</div>
</template>
<script>
export default {
data() {
return {
treeData: [], // 树的数据
defaultExpandedKey: '', // 默认展开的节点的 key
};
},
methods: {
loadData(node, resolve) {
// 在这里请求数据,根据节点的 key 获取子节点数据
// 然后通过 resolve 方法将数据传递给组件
// 示例中使用 setTimeout 模拟异步请求
setTimeout(() => {
const children = [
{ label: '子节点1', key: 'child1' },
{ label: '子节点2', key: 'child2' },
{ label: '子节点3', key: 'child3' },
];
resolve(children);
}, 1000);
},
handleNodeClick(node) {
// 处理节点的点击事件
},
},
mounted() {
// 初始化默认展开的节点的 key
this.defaultExpandedKey = this.treeData.length > 0 ? this.treeData[0].key : '';
},
};
</script>
```
在上面的代码中,el-tree 组件的 lazy 属性被设置为 true,这样只有当节点展开时才会去加载子节点数据。通过 loadData 方法来异步加载数据,你可以根据实际情况进行修改。
同时,default-expanded-keys 属性被设置为一个数组,数组中包含了要默认展开的节点的 key。在示例中,我们将第一个节点的 key 设置为默认展开的节点。
希望这个示例对你有帮助!如有更多问题,请随时提问。
阅读全文