这篇文章主要介绍“如何实现小程序中下拉刷新和上拉加载功能”,在日常操作中,相信很多人在如何实现小程序中下拉刷新和上拉加载功能问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何实现小程序中下拉刷新和上拉加载功能”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
当我们使用scroll-view滑动组件展示列表时,其本身就存在下拉刷新和上拉加载的触发函数
<scroll-view class="scroll" scroll-y="{{true}}" upper-threshold="50"
bindscrolltoupper="refresh" style="height:700px">
<l-loadmore show="{{upfresh}}" bindscrolltolower="getMore" type="loading" loading-text="拼命刷新中">
</l-loadmore>
<l-loadmore show="{{downfresh}}" type="loading" loading-text="拼命加载中">
</l-loadmore>
scroll-y: 是否允许纵向滚动,默认为false,这里我们设置为true
upper-threshold: 距顶部/左边多远时,触发 scrolltoupper 事件(下拉刷新)
bindscrolltoupper:滚动到顶部/左边时触发,这里设置滚动到顶部需要触发的函数
bindscrolltolower:滚动到顶部/右边时触发
引入line-ui框架
这里我使用的下拉刷新和上拉加载展示组件是lin-ui框架提供的,这里我说下如何引入lin-ui框架:
lin-ui官方文档地址
//在小程序项目目录中执行下面的函数
npm install lin-ui
然后在需要引入组件的页面的json文件中进行引入
"usingComponents": {
"l-loadmore":"/miniprogram_npm/lin-ui/loadmore/index",
"l-loading":"/miniprogram_npm/lin-ui/loading/index",
},
这样lin-ui组件就引入成功了
js代码编写
data: {
downfresh:false,//底部加载展示控制
upfresh:false//顶部加载展示控制
},
首先在data中设置加载组件是否显示,默认都不显示
下拉刷新js代码
//下拉刷新
refresh(){
if(this.data.upfresh){
console.log("还没刷新完成")
return;
}
var that = this;
this.setData({
upfresh: true,
// upfresh:false
})
setTimeout(function() {
//updateData为自己的数据更新逻辑代码
that.updateData(true,()=>{
that.setData({
upfresh: false,
});
})
// wx.hideLoading();
console.info('下拉刷新加载完成.');
}, 500);
},
//更新数据
updateData:function(tail, callback) {
var that = this;
console.log("updatedata-=-=seea"+that.data.searchValue)
wx.request({
url: app.gBaseUrl + 'compony-detail/page',
method: 'GET',
data: {
page: 0,
count: 20,
componyname:that.data.searchValue
},
success: (res) => {
this.setData({
componys: res.data
})
if (callback) {
callback();
}
}
})
},
上拉加载js代码
/**
* 滑动到底部加载更多
*/
getMore(){
// downloadingData=this.data.downloadingData
if(this.data.downfresh){
console.log("还没加载完成")
return;
}
var that = this;
this.setData({
downfresh: true,
// upfresh:false
})
this.setData({
downloadingData: true
// upfresh:false
})
setTimeout(function() {
that.loadData(true,()=>{
that.setData({
downfresh: false
});
})
// wx.hideLoading();
console.info('上拉数据加载完成.');
}, 1000);
},
loadData: function(tail, callback) {
var that = this;
wx.request({
url: app.gBaseUrl + 'compony-detail/page',
method: 'GET',
data: {
page: that.data.componys.length,
count: 20,
componyname:that.data.searchValue
},
success: (res) => {
// console.log(JSON.stringify(res.data))
that.setData({
componys: that.data.componys.concat(res.data),
});
if (callback) {
callback();
}
}
})
},
整个下拉刷新和上拉加载的功能我们就已经实现了,主要就是利用到了scroll-view的组件特性,根据触发的时机来控制记载组件的显隐,整体实现并不是很难,具体代码可根据自己的实际情况做适当调整哦。
到此,关于“如何实现小程序中下拉刷新和上拉加载功能”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。