小程序分页新写法

javascript 复制代码
// pages/query/query.js
import {
  request
} from '../../utils/request';
Page({

  /**
   * 页面的初始数据
   */
  data: {
    tabClickIndex: '',
    page: 1,
    limit: 10,
    listData: []
  },

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

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

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

  },
  getList() {
    request('/api/list', 'get', {
      page: this.data.page,
      limit: this.data.limit,
      status: this.data.tabClickIndex
    }).then((res) => {
      console.log(res);
      if (res.msg === 'success') {
        const newData = res.data;
        // 将新数据拼接到现有数据上
        this.setData({
          listData: this.data.listData.concat(newData),
          // 根据返回的总条数和当前页计算是否有更多数据 hasMore为false 返回的数据没有那你多了 则没有更多数据
          hasMore: newData.length === this.data.limit,
        });
      }
    })
  },
  listItemClcik() {
    wx.navigateTo({
      url: '/pages/Details/Details',
    })
  },
  tabClcik(e) {
    console.log(e);
    this.setData({
      page: 1,
      listData: [],
      tabClickIndex: e.target.dataset.index
    })

    wx.pageScrollTo({
      scrollTop: 0,
      duration: 300
    })

    this.getList()
    console.log(this.data.tabClickIndex, 'tabClickIndex');
  },
  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

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

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {
    console.log('onReachBottom');
    if (this.data.hasMore) {
      this.setData({
        page: this.data.page + 1
      })
      this.getList()
    } else {
      wx.showToast({
        title: '没有更多数据啦!',
        icon: 'none'
      })
    }
    console.log(this.data.page);
  },

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

  }
})
相关推荐
还是大剑师兰特几秒前
pinia-plugin-persistedstate详解与Vue3使用示例
开发语言·javascript·ecmascript
方便面不加香菜3 分钟前
C++ 类和对象(二)
开发语言·c++
@大迁世界4 分钟前
20.“可复用组件”具体指的是什么?如何设计与产出这类组件?.
开发语言·前端·javascript·ecmascript
有味道的男人5 分钟前
电商效率翻倍:用 Open Claw 对接 1688 接口,快速实现图片选品 + 货源监控
java·开发语言·数据库
froginwe115 分钟前
Chart.js 雷达图:深入解析与实际应用
开发语言
枫叶丹46 分钟前
【HarmonyOS 6.0】屏幕管理新特性:多屏坐标转换详解
开发语言·华为·harmonyos
Dxy12393102168 分钟前
Python有哪些方法可以进行文本纠错
开发语言·python
fengci.18 分钟前
php反序列化(复习)(第四章)
android·开发语言·学习·php·android studio
Jasmine_llq18 分钟前
《B3923 [GESP202312 二级] 小杨做题》
开发语言·状态标记算法·顺序输入输出算法·递推迭代算法·循环遍历算法·条件终止算法·累加求和算法