uniapp 触底分页
时间: 2023-07-21 16:11:28 浏览: 119
在 UniApp 中实现触底分页可以通过以下步骤进行:
1. 在你的页面中定义一个数据列表数组,用于存储分页加载的数据:
```javascript
data() {
return {
dataList: [], // 数据列表数组
pageNo: 1, // 当前页码
pageSize: 10, // 每页数据条数
hasMore: true, // 是否还有更多数据
isLoading: false // 是否正在加载中
};
}
```
2. 在页面的 `onLoad` 或 `onShow` 生命周期钩子中初始化数据列表,调用数据加载方法:
```javascript
onLoad() {
this.loadData();
}
```
3. 实现数据加载方法,根据当前页码和每页数据条数从服务器获取数据并更新 dataList 数组:
```javascript
methods: {
loadData() {
if (this.isLoading || !this.hasMore) {
return; // 如果正在加载中或没有更多数据,则不执行加载操作
}
this.isLoading = true; // 设置加载状态为 true
// 调用接口获取数据,传递当前页码和每页数据条数
api.getDataList(this.pageNo, this.pageSize)
.then(res => {
if (res.success) {
const newDataList = res.data; // 获取到的新数据列表
this.dataList = this.dataList.concat(newDataList); // 将获取到的新数据追加到 dataList 数组中
if (newDataList.length < this.pageSize) {
this.hasMore = false; // 如果返回的数据条数小于每页数据条数,则表示没有更多数据了
} else {
this.pageNo++; // 更新页码
}
}
})
.finally(() => {
this.isLoading = false; // 加载完成,重置加载状态为 false
});
}
}
```
4. 在页面的 `onReachBottom` 事件中触发加载更多数据:
```javascript
onReachBottom() {
this.loadData();
}
```
通过以上步骤,你可以实现一个基本的触底分页功能。当页面滚动到底部时,会自动触发 `onReachBottom` 事件,然后调用 `loadData` 方法加载更多数据并更新数据列表。需要根据实际情况调整接口调用和数据处理逻辑。
阅读全文