⼩程序分页加载的实例代码
整理⽂档,搜刮出⼀个⼩程序分页加载的代码,稍微整理精简⼀下做下分享。
分页加载功能⼤家遇到的应该会经常遇到,应⽤场景也很多,例如微博,QQ,朋友圈以及新闻类应⽤,都会有分页加载的功能,这不仅节省了我们⽤户的流量,还提升了⽤户体验。那么今天的这篇⽂章就是介绍⼩程序中如何实现分页加载的功能。照例先上源码及效果图。
要实现这样的功能,⼀般需要在请求数据时加⼊当前请求页数,以及页的⼤⼩(每页显⽰的数量)也有⼀部分接⼝是通过请求的开始偏移量和结束偏移量请求数据,例如你⼀页显⽰10条数据,第⼀次(第⼀页)请求即开始start为0结束end是9,第⼆页就是从10到19,以此类推。
既然要实现分页加载功能,最重要就是下拉以及上拉的处理事件,在⼩程序中已经帮我们封装好了上拉以及下拉的触发事件,如下
/**
* 页⾯相关事件处理函数--监听⽤户下拉动作
*/
onPullDownRefresh: function () {
},
/**
* 页⾯上拉触底事件的处理函数
*/
onReachBottom: function () {宿州教育网中考查分
},
可能刚接触⼩程序的爱好者,会遇到⼀个问题,为什么我重写了上拉和下拉函数,但是当我上拉或者下拉的时候函数为什么不回调啊。莫急莫慌,那是因为除了重写这两个函数,我们还需要在json配置⽂件加⼊下⾯代码
{
"enablePullDownRefresh": true
}
有了上⾯的代码,我们每次上拉或者下拉就会触发相对应的函数了。
在data中创建数据
data: {
page: 1,
pageSize: 30,
hasMoreData: true,
contentlist: [],
},
page即为当前请求数据时第⼏页,pageSize是每页的数据的⼤⼩,hasMoreData⽤于上拉的时候是不是要继续请求数据,即是不是还有更多数据。当我们⽹络请求数据成功后,如果请求数据的长度⼩于pageSize: 30,那么就表⽰没有更多数据,将hasMoreData更改为false,如果请求的数据长度是30,
表⽰还有更多数据那么hasMoreData久更改为true,并将页数page加1.当下拉的时候讲page先更改为1,然后去查询数据,当查询数据成功时,如果page为1,就将获取的数据直接赋值给contentlist,如果页数⼤于1的话,就将请求的数据追加在contentlist后⾯。这样就可以实现分页加载的功能了。
经过上⾯的分析,我们已经对分页加载的实现有了⼀个清晰的认识,那么接下来我就介绍代码的实现。
getMusicInfo: function (message) {
var that = this
var data = {
showapi_appid: '25158',
showapi_sign: 'c0d685445898438f8c12ee8e93c2ee74',
keyword: '我',
page: that.data.page
}
电脑开机进不了系统console.log(res)
var contentlistTem = tlist
if (res.showapi_res_code == 0) {
if (that.data.page == 1) {
contentlistTem = []
}
var contentlist = res.showapi_res_tlist
if (contentlist.length < that.data.pageSize) {
that.setData({
contentlist: at(contentlist),
hasMoreData: false
})
} else {
that.setData({
contentlist: at(contentlist),
hasMoreData: true,
page: that.data.page + 1
})
}
} else {
wx.showToast({
title: res.showapi_res_error,
})
宋洋演过的电视剧}
}, function (res) {
wx.showToast({
title: '加载数据失败',
})
王力宏的老婆})
},
上⾯函数就是获取⾳乐列表信息的请求处理逻辑,该函数有⼀个参数message,它是⽤来展⽰加载数
据时的提⽰信息,例如当下拉的时候,提⽰信息为正在刷新数据,当上拉的时候提⽰正在加载更多数据。
那么我们当进⼊页⾯的时候开始加载⼀次数据,即在onLoad函数,如下
onLoad: function (options) {
// 页⾯初始化 options为页⾯跳转所带来的参数
var that = this
},对联上下联怎么分
然后上拉和下拉函数的实现如下
周润发资料/**
* 页⾯相关事件处理函数--监听⽤户下拉动作
*/
onPullDownRefresh: function () {
this.data.page = 1
},
/**
* 页⾯上拉触底事件的处理函数
*/
onReachBottom: function () {
if (this.data.hasMoreData) {
} else {
wx.showToast({
title: '没有更多数据',
})
}
},
以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。