el-tree 懒加载,代码实例
时间: 2023-08-29 07:13:27 浏览: 108
Element-ui树形控件el-tree自定义增删改和局部刷新及懒加载操作
5星 · 资源好评率100%
el-tree 是 Element UI 提供的一个树形组件,支持懒加载子节点数据。下面是一个 el-tree 懒加载的代码实例。
首先,我们需要在组件中定义一个方法 `loadNode`,该方法会在节点展开时触发,从服务器获取子节点数据:
```javascript
<template>
<el-tree
:data="data"
:load="loadNode"
:lazy="true"
:props="{
label: 'name',
isLeaf: 'leaf'
}"
></el-tree>
</template>
<script>
export default {
data() {
return {
data: []
}
},
methods: {
loadNode(node, resolve) {
// 发送请求从服务器获取子节点数据
axios.get('/api/getChildren?id=' + node.id)
.then(response => {
const children = response.data.map(item => {
return {
id: item.id,
name: item.name,
leaf: item.children.length === 0 // 判断是否是叶子节点
}
})
resolve(children)
})
.catch(error => {
console.log(error)
resolve([])
})
}
}
}
</script>
```
在上面的代码中,我们使用了 `axios` 发送了一个 GET 请求,从服务器获取子节点数据。在请求成功后,我们将数据格式化为 el-tree 所需的格式,并通过调用 `resolve` 方法将数据返回给 el-tree 组件。如果请求失败,则返回一个空数组。
另外,我们需要在 el-tree 组件上设置 `:lazy="true"` 属性,告诉 el-tree 组件开启懒加载功能。同时,我们还需要设置 `:load="loadNode"` 属性,将 `loadNode` 方法绑定到 el-tree 组件的 `load` 事件上。
最后,我们还需要在 `props` 属性中指定节点的名称和是否为叶子节点。在本例中,我们指定节点的名称为 `name`,叶子节点的判断条件为 `leaf`。
这样,我们就完成了 el-tree 懒加载的代码实例。
阅读全文