实现原生微信小程序分页代码
时间: 2023-10-06 16:05:29 浏览: 159
以下是一个简单的微信小程序分页实现代码示例:
1. 定义全局变量
在page的data中定义pageNum和pageSize两个变量用于分页:
```
data: {
list: [], // 数据列表
pageNum: 1, // 当前页码
pageSize: 10, // 每页显示数量
hasMore: true // 是否还有更多数据
}
```
2. 加载第一页数据
在onLoad事件中调用loadData方法加载第一页数据:
```
onLoad: function () {
this.loadData();
}
```
loadData方法中设置请求参数并调用网络请求接口拉取数据,成功后将数据保存到list数组中:
```
loadData: function () {
wx.showLoading({
title: '加载中...',
})
var that = this;
wx.request({
url: 'https://xxx.xxx.com/api/list',
data: {
pageNum: that.data.pageNum,
pageSize: that.data.pageSize
},
success: function (res) {
if (res.data.code == 0) {
var list = res.data.data.list;
that.setData({
list: that.data.list.concat(list),
hasMore: list.length >= that.data.pageSize,
pageNum: that.data.pageNum + 1
})
} else {
wx.showToast({
title: res.data.message,
icon: 'none'
})
}
},
fail: function () {
wx.showToast({
title: '网络异常',
icon: 'none'
})
},
complete: function () {
wx.hideLoading();
}
})
}
```
3. 监听页面滚动事件
在页面的onPageScroll事件中监听页面滚动事件,当页面滚动到底部时加载下一页数据:
```
onPageScroll: function (e) {
if (this.data.hasMore && e.scrollTop + e.windowHeight + 20 >= e.scrollHeight) {
this.loadData();
}
}
```
4. 清空数据重新加载
如果需要重新加载数据,可以在页面中添加一个按钮,点击按钮时清空list数组并将pageNum重置为1,然后调用loadData方法加载第一页数据:
```
onReload: function () {
this.setData({
list: [],
pageNum: 1,
hasMore: true
})
this.loadData();
}
```
以上是一个简单的微信小程序分页实现代码示例,需要注意的是,实际开发中需要根据具体需求进行适当调整。
阅读全文