微信小程序——分页获取数据+上拉刷新笔记

以下是.js代码

// pages/shopList/shopList.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    // 判断要搜索什么信息
    query:{},
    // 存储请求的资源
    shopList:[],
    // 指定从第几页开始获取
    page:1,
    // 每次获取几条数据
    pageSize:10,
    // 总共有几条数据
    total:0,
    // 遮罩层
    isloading:false
  },
  // 获取资源
  getShopList(cb){
    this.setData({
      isloading:true
    })
    wx.showLoading({
      title: '数据加载中...',
    })
    wx.request({
      url: `https://www.escook.cn/categories/${this.data.query.id}/shops`,
      method:'get',
      // 分页设置
      data:{
        _page:this.data.page,
        _limit:this.data.pageSize
      },
      success:(res)=>{
        // 旧数据与新资源合并
        this.setData({
          shopList:[...this.data.shopList,...res.data],
          total:res.header['X-Total-Count']*1
        })
      },
      complete:()=>{
        wx.hideLoading()
        this.setData({
          isloading:false
        })
        cb&&cb()
      }
    })
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
   this.setData({
     query:options
   })
   this.getShopList()
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {
    // 设置标题
    wx.setNavigationBarTitle({
      title: this.data.query.name,
    })

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {
    // 下拉恢复初始状态
    this.setData({
      total:0,
      shopList:[],
      page:1
    })
    wx.stopPullDownRefresh()
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {
    // 如果下划到数据获取完,弹出提示不在向服务器发起请求(性能优化的方式)
    if(this.data.page*this.data.pageSize>=this.data.total)
    return wx.showToast({
      title: '数据加载完毕',
      icon:'loading'
    })
    this.setData({
      page:this.data.page+1
    })
    this.getShopList()

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})

以下是.json代码

{
  "usingComponents": {
    
  },
  "onReachBottomDistance": 100,
  "enablePullDownRefresh": true,
  "backgroundColor": "#dddddd",
  "backgroundTextStyle": "dark"

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值