【微信小程序】下拉刷新与上拉加载更多

悠悠 2022-05-24 04:00 365阅读 0赞
  1. /** * 页面的初始数据 */
  2. data: {
  3. pageIndex: null,
  4. allpagenum: null,
  5. list: [],
  6. reachBottom: false
  7. },
  8. /** * 生命周期函数--监听页面加载 */
  9. onLoad: function (options) {
  10. wx.showToast({
  11. title: '加载中...',
  12. icon: 'loading',
  13. duration: 500
  14. })
  15. this.setData({
  16. pageIndex: 1
  17. })
  18. this.gainLoadingListData()
  19. },
  20. /** * 页面相关事件处理函数--监听用户下拉动作 */
  21. onPullDownRefresh: function () {
  22. this.gainLoadingListData()
  23. },
  24. /** * 页面上拉触底事件的处理函数 */
  25. onReachBottom: function () {
  26. this.setData({
  27. pageIndex: this.data.pageIndex + 1
  28. })
  29. if (this.data.pageIndex <= this.data.allpagenum) {
  30. wx.showToast({
  31. title: '加载中...',
  32. icon: 'loading',
  33. duration: 500
  34. })
  35. this.gainLoadingListData()
  36. } else {
  37. this.setData({
  38. reachBottom: true
  39. })
  40. }
  41. },
  42. /** * 加载数据的处理函数 */
  43. gainLoadingListData: function () {
  44. let that = this;
  45. let pageIndex = that.data.pageIndex;
  46. let openid = wx.getStorageSync('openid');
  47. wx.request({
  48. url: xxx,
  49. method: 'POST',
  50. data: {
  51. openid: openid,
  52. pageIndex: pageIndex
  53. },
  54. success: function (res) {
  55. var list = that.data.list;
  56. if (res) {
  57. for (var i = 0; i < res.data.data.length; i++) {
  58. list.push(res.data.data[i]);
  59. }
  60. that.setData({
  61. list: list,
  62. allpagenum: res.data.allpagenum // 在第一页加载时让后台传参中包括总页数,这样方便后来的上拉加载更多判断是否到达最后一页并让“已到底部”设置为true进行显示
  63. });
  64. }
  65. },
  66. })
  67. },
  68. <view wx:if="{ { reachBottom}}"> <view class="weui-footer"> <view class="weui-footer__text">我也是有底线的!</view> </view> </view>

发表评论

表情:
评论列表 (有 0 条评论,365人围观)

还没有评论,来说两句吧...

相关阅读

    相关 程序

    > 无论是微信小程序还是其他前端框架,都会遇到上拉加载(懒加载)和下拉刷新这种问题。其实理清楚什么时候请求数据、请求返回的几种情况,那么做这个懒加载就很简单了。 一、首先,