分页加载功能大家遇到的应该会经常遇到,应用场景也很多,例如微博,QQ,微信朋友圈以及新闻类应用,都会有分页加载的功能,这不仅节省了我们用户的流量,还提升了用户体验。那么今天的这篇文章就是介绍微信小程序中如何实现分页加载的功能。
数据来自于后端(lumen带分页)
/** * @todo 获取订单列表 * @return mixed */ public function getOrderList(){ $field = ['id','order_no','name','created_at','desc','order_status','pay_status']; $orders = Order::where('uid',$this->user->id)->orderBy('created_at', 'desc')->paginate(5, $field); return $orders; }
数据
..wxjs
const util = require('../../utils/util.js'); Page({ /** * 页面的初始数据 */ data: { // 前台显示list showlist: [], // 初始化page page: 2, height:600, }, onLoad: function (options) { var self = this; // 请求后台 util.ajax('order/get' , '', 'GET', res => { self.setData({ showlist: res.data, }) }) }, /** * 页面上拉触底事件的处理函数 */ upcroll: function (e) { var self = this; var page = self.data.page++; // 请求后台,获取下一页的数据。 util.ajax('order/get?page=' + page, '', 'GET', res => { self.setData({ //向页面已有数据后面加数据 showlist: self.data.showlist.concat(res.data), }) if (res.data=='') { wx.showToast({ title: '没有更多数据', }) } }) } })
..wxml
<view class='warp'> <view class='container' > <scroll-view scroll-y='true' style="height:{{height}}px" bindscrolltolower="upcroll" lower-threshold="20" > <view class='alllist' wx:for="{{showlist}}" wx:for-item="j" wx:key="key" name="info_border"> <view class='list'> <view class='img'> <image src='../../imges/imgicon/icon2.png' class='img'></image> <view class='text'>{{j.name}}</view> </view> <view class='message'> <view class='te'><text class='text'>日期:</text><text class='text cor'>{{j.created_at}}</text></view> <view class='te text on'><text class='text'>描述:</text>{{j.desc}}</view> </view> </view> <view class='text statsin'> <view class='a left'> <navigator url='#' class='waiting' >待接单</navigator> </view> <view class='a'> <navigator url='#' class='okorder'>已完成</navigator> </view> </view> </view> </scroll-view> </view> </view>
结果:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持自学编程网。
- 本文固定链接: https://zxbcw.cn/post/200135/
- 转载请注明:必须在正文中标注并保留原文链接
- QQ群: PHP高手阵营官方总群(344148542)
- QQ群: Yii2.0开发(304864863)