欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 美景 > 微信小程序-下拉滚动加载数据

微信小程序-下拉滚动加载数据

2025/4/19 15:46:30 来源:https://blog.csdn.net/pandamf/article/details/147202233  浏览:    关键词:微信小程序-下拉滚动加载数据

1.实现流程图

所谓工欲善其事,必先利其器,做程序之前咱们把思路整理一下 ,画流程图是比较好的方式

2.前端JS 和 WXML

视图绑定  scrollToLower 方法 ,当离底部还有100时候触发;

WXML:

<scroll-view scroll-y lower-threshold="100" bindscrolltolower="scrollToLower" style="height: 100vh;"><view class="items" wx:for="{{list}}" wx:key="{{item.id}}"><image src="{{item.img}}"/><view class="datas"><view class="beauty">订单金额:{{item.price}}元</view><view class="times">2022-09-30</view></view></view>
</scroll-view>
<view class='text-style'>{{text}}</view>

datalock 等于1 时, 不发出网络请求, 已免不必要的网络开销;

数据返回时 使用 concat 拼接

JS:

    data: {list:[],page:1,text:'',datalock:0},onLoad: function (options) {this.getDatas();},scrollToLower:function(){if(this.data.datalock==1){return false;}else{wx.showToast({title: '加载中...',icon:"loading",duration:600});this.getDatas();}  },getDatas:function(){var that = this;wx.request({url:'https://www.test.com/loaddata',method:"GET",data:{token:wx.getStorageSync('userid'),page:that.data.page,},success:function(res){//console.log(res.data);if(res.data.data.length > 0 ){let newlist = that.data.list.concat(res.data.data); //拼接数据for(let i=0;i<newlist.length;i++){newlist[i].jsonformat =  JSON.parse(newlist[i].json);newlist[i].timeformat =  tools.formatTime(newlist[i].addtime,'Y-M-D h:m');}that.setData({list : newlist,page : that.data.page +1,text: '加载更多'});//console.log(that.data.list);}else{that.setData({text: '到底啦!',datalock:1});}},fail:function(res){console.log(res);}});}
    

3.后端代码

这里使用tp6.1 来做接口通讯

use think\Request;
use think\Db;
use think\Config;
...
public function loaddata(Request $request){$token = trim($request->param('token'));$page = intval($request->param('page'));$pageNum = 5;if(!$page){$page=1;}$res_data = Db::name('usercolor')->where("uidtoken='".$token."'")->order('id desc')->limit(($page-1)*$pageNum,$pageNum)->select();if($res_data){make_jsons($res_data);exit(); }else{make_jsons([],400,'error');exit();}
}
...

顺带附上make_jsons方法:

function make_jsons($dataArr=[],$code=200,$message='suc'){$codedata = [  'status' => $code,  'message' => $message,  'data' =>$dataArr,  ];  echo  json_encode($codedata);exit();}


版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词