uniapp后端返回所有列表数据,前端拿所有数据分页实现上拉下拉刷新
时间: 2024-01-24 21:18:05 浏览: 112
在 Uniapp 中,你可以使用 `uni.request` 方法从后端获取所有数据。一般情况下,你可以在 `onLoad` 方法中调用该方法,获取数据之后将其保存到页面的数据中,然后使用 `uni-list` 或 `uni-grid` 等组件渲染数据。
以下是一个简单的示例代码:
```html
<template>
<view>
<scroll-view scroll-y="true" class="scroll-view">
<view v-for="(item, index) in dataList" :key="index">{{ item }}</view>
</scroll-view>
</view>
</template>
<script>
export default {
data() {
return {
dataList: [],
currentPage: 1,
pageSize: 10,
};
},
onLoad() {
this.getDataList();
},
methods: {
getDataList() {
uni.request({
url: 'http://your-api.com/data-list',
success: (res) => {
this.dataList = res.data; // 将返回的数据保存到页面数据中
},
});
},
onPullDownRefresh() {
// 下拉刷新,重新获取数据
this.getDataList();
uni.stopPullDownRefresh();
},
onReachBottom() {
// 上拉加载更多
this.currentPage++;
const start = (this.currentPage - 1) * this.pageSize;
const end = start + this.pageSize;
this.dataList = this.dataList.concat(this.dataList.slice(start, end));
},
},
};
</script>
```
在这个示例中,我们先定义了一个空数组 `dataList` 来保存所有数据。在 `onLoad` 方法中调用 `getDataList` 方法,该方法使用 `uni.request` 发送网络请求,获取所有数据并将其保存到 `dataList` 中。然后我们使用 `scroll-view` 组件渲染数据,在下拉刷新和上拉加载更多时更新数据。
在上拉加载更多时,我们通过当前页码和每页大小计算出需要显示的数据范围,并使用 `concat` 方法将新数据合并到原来的数据中。
阅读全文