帮我写vue加elementui table判断页面触底
时间: 2023-04-12 11:00:58 浏览: 115
当用户滚动到页面底部时,可以触发一个事件来加载更多数据。以下是一个示例代码,可以帮助您实现这个功能:
<template>
<div>
<el-table :data="tableData" ref="table" style="width: 100%">
<el-table-column prop="name" label="姓名"></el-table-column>
<el-table-column prop="age" label="年龄"></el-table-column>
<el-table-column prop="address" label="地址"></el-table-column>
</el-table>
</div>
</template>
<script>
export default {
data() {
return {
tableData: [],
currentPage: 1,
pageSize: 10,
total: 0,
};
},
mounted() {
this.loadData();
window.addEventListener("scroll", this.handleScroll);
},
methods: {
loadData() {
// 模拟异步加载数据
setTimeout(() => {
const data = [];
for (let i = 0; i < this.pageSize; i++) {
const index = (this.currentPage - 1) * this.pageSize + i;
data.push({
name: `姓名${index}`,
age: 20 + i,
address: `地址${index}`,
});
}
this.tableData = this.tableData.concat(data);
this.total = this.tableData.length;
this.currentPage++;
}, 1000);
},
handleScroll() {
const table = this.$refs.table.$el.querySelector(".el-table__body-wrapper");
if (table.scrollHeight - table.scrollTop <= table.clientHeight) {
this.loadData();
}
},
},
};
</script>
在这个示例中,我们使用了 element-ui 的 el-table 组件来展示数据。我们在 mounted 钩子函数中注册了一个滚动事件监听器,当用户滚动到表格底部时,会触发 handleScroll 方法。在 handleScroll 方法中,我们判断当前滚动位置是否已经到达了表格底部,如果是,则调用 loadData 方法来加载更多数据。在 loadData 方法中,我们使用 setTimeout 模拟了异步加载数据的过程,每次加载 pageSize 条数据,直到数据全部加载完毕为止。
阅读全文