实现el-table懒加载
时间: 2023-10-14 13:09:58 浏览: 441
el-table-infinite-scroll:El-Table无限滚动
5星 · 资源好评率100%
el-table的懒加载可以通过以下步骤实现:
1. 在el-table中设置lazy属性为true,表示开启懒加载模式。
2. 在el-table中设置load方法,该方法会在表格滚动到底部时触发,用于加载更多数据。
3. 在load方法中发送异步请求,获取更多数据,并将数据添加到表格中。
4. 在load方法中设置isLoading属性为true,表示正在加载数据,加载完成后再将isLoading设置为false。
下面是一个简单的示例代码:
```
<template>
<el-table :data="tableData" :lazy="true" @load="handleLoad" :loading="isLoading">
<el-table-column prop="name" label="姓名"></el-table-column>
<el-table-column prop="age" label="年龄"></el-table-column>
</el-table>
</template>
<script>
export default {
data() {
return {
tableData: [],
isLoading: false,
currentPage: 1,
totalPage: 0
};
},
methods: {
handleLoad() {
if (this.currentPage > this.totalPage) {
return;
}
this.isLoading = true;
//发送异步请求获取数据,假设每次获取10条数据
setTimeout(() => {
//假设total为总共的数据量
const total = 100;
const newData = [];
for (let i = (this.currentPage - 1) * 10; i < this.currentPage * 10; i++) {
if (i >= total) {
break;
}
newData.push({
name: `name${i}`,
age: i
});
}
this.tableData = this.tableData.concat(newData);
this.totalPage = Math.ceil(total / 10);
this.currentPage++;
this.isLoading = false;
}, 1000);
}
}
};
</script>
```
在这个例子中,我们通过设置lazy属性为true和load方法来实现懒加载。handleLoad方法会在表格滚动到底部时触发,然后发送异步请求获取更多数据,并将数据添加到表格中。isLoading属性用于表示是否正在加载数据。currentPage和totalPage用于表示当前页和总页数。在加载数据时,我们通过计算currentPage和totalPage来判断是否已经加载完所有数据。
阅读全文