el-tree 动态数据懒加载
时间: 2023-10-10 21:15:30 浏览: 143
element el-tree组件的动态加载、新增、更新节点的实现
ElTree 是 Element UI 中的一个树形组件,它支持动态加载数据,也就是懒加载。通过设置 `lazy` 属性为 `true`,可以实现动态加载子节点的功能。
要实现动态数据懒加载,需要使用 `load` 事件来自定义加载子节点的方式。当某个节点展开时,ElTree 会触发 `load` 事件,并将该节点的数据对象作为参数传递给事件处理函数。在事件处理函数中,我们可以根据该节点的数据对象来动态加载子节点的数据。
下面是一个简单的示例代码,演示了如何使用 ElTree 实现动态数据懒加载:
```html
<template>
<el-tree
:data="treeData"
:lazy="true"
:load="loadChildren"
></el-tree>
</template>
<script>
export default {
data() {
return {
treeData: [
{
label: '节点1',
loading: false,
children: []
},
{
label: '节点2',
loading: false,
children: []
}
]
};
},
methods: {
loadChildren(node, resolve) {
// 模拟异步加载子节点数据
node.loading = true;
setTimeout(() => {
// 获取子节点数据
const childrenData = [
{ label: '子节点1' },
{ label: '子节点2' }
];
// 更新节点的子节点数据
node.children = childrenData;
node.loading = false;
// 解析子节点数据,告诉 ElTree 数据已加载完成
resolve(childrenData);
}, 1000);
}
}
};
</script>
```
在上述代码中,`loadChildren` 方法用于加载子节点数据。在该方法内部,我们可以执行异步操作来获取子节点数据,然后将数据赋值给节点的 `children` 属性,并调用 `resolve` 函数来告知 ElTree 数据已加载完成。
这样,当用户展开某个节点时,会触发 `load` 事件,然后调用 `loadChildren` 方法来加载子节点数据并显示在树形组件中。
阅读全文