小程序触底加载和下拉刷新
准备:
//js页面
data: {
datalist:[],//接收数据
page:1,//作为参数
isBool:true//用于判断是触底加载还是下来刷新
},
//请求 已简单封装过
async requestList(){
const url="url"
let data=https://www.it610.com/article/{
page:this.data.page,//第几页
limit:10//每次请求的数据量 一次10条
}
let res=await api.get(url,data)//返回的数据
this.setData({
//isBool如果是true,则为触底加载,会将datalist中的数据和重新请求的数据合并
//isBool如果是false,则为刷新,给datalist重新赋值
datalist:this.data.isBool ? [...this.data.datalist,...res.data] : res.data
})
}
开始写触底加载(上拉):
//js页面
onReachBottom: function () {
console.log("上拉,就是触底加载");
this.setData({
page:this.data.page + 1,//每次触发事件,就让page+1
isBottom:true//让isBool为真,代表上拉
})
this.requestList()//最后重新刷新请求
},
下拉(刷新):
onPullDownRefresh():需要在
app.json
的window
选项中或页面配置中开启enablePullDownRefresh
app.json:
"window": {
"backgroundTextStyle": "light",//下拉 loading 的样式,默认为dark,
"enablePullDownRefresh":true//启用下拉刷新
},
//js页面:
onPullDownRefresh: function () {
console.log('监听用户下拉,刷新');
this.setData({
page:this.data.page + 1,
isBool:false//用false代表刷新
})
this.requestList()//重新请求
},
- 可以通过wx.startPullDownRefresh触发下拉刷新,调用后触发下拉刷新动画,效果与用户手动下拉刷新一致。
- 当处理完数据刷新后,wx.stopPullDownRefresh可以停止当前页面的下拉刷新。
【小程序触底加载和下拉刷新】
推荐阅读
- 【JS30-Wes Bos】异步操作实现的小字典
- 被盗4900万,互联网巨头竟败给“小学生”
- LeetCode编程题解法汇总|力扣解法汇总798-得分最高的最小轮调
- vue input 验证输入内容为小数点后两位
- 小程序的五大推广方式
- Python网络编程——TCP客户端程序开发
- Python网络编程——TCP服务端程序开发
- Jmeter 压测分析
- java小贴士|面试官问(什么是浅拷贝和深拷贝())
- #|《Effective Modern C++》学习笔记 - Item 29: 移动操作的“坑点”(它们可能不存在,开销不小或不会被调用)