el-tree数据量大卡顿,异步加载如何实现
时间: 2023-10-19 21:14:14 浏览: 170
el-tree 在处理大量数据时可能会出现卡顿的情况,可以通过异步加载来解决这个问题。
具体实现方式如下:
1. 将 el-tree 的 lazy 属性设置为 true,表示开启懒加载模式。
2. 在 el-tree 的 load 方法中,异步请求数据,获取到数据后将数据传给 callback 回调函数。
3. 在回调函数中,将新的数据合并到原有数据中,再通过 this.$nextTick 方法强制更新 el-tree 组件。
代码示例:
```html
<template>
<el-tree
:data="treeData"
:load="loadData"
:lazy="true"
></el-tree>
</template>
<script>
export default {
data() {
return {
treeData: []
}
},
methods: {
loadData(node, callback) {
// 异步请求数据
axios.get('/api/getTreeData', { params: { id: node.id }})
.then(res => {
// 将新的数据合并到原有数据中
node.children = res.data;
// 强制更新 el-tree 组件
this.$nextTick(() => {
callback();
});
})
.catch(err => {
console.log(err);
});
}
}
}
</script>
```
阅读全文