小程序分页新写法

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() {

  }
})
相关推荐
henreash3 分钟前
C# dll版本冲突解决方案
开发语言·c#
黎䪽圓25 分钟前
【Java多线程从青铜到王者】单例设计模式(八)
java·开发语言·设计模式
程序员小张丶29 分钟前
React Native在HarmonyOS 5.0阅读类应用开发中的实践
javascript·react native·react.js·阅读·harmonyos5.0
EndingCoder29 分钟前
React Native 是什么?为什么学它?
javascript·react native·react.js
摸鱼仙人~1 小时前
Redux Toolkit 快速入门指南:createSlice、configureStore、useSelector、useDispatch 全面解析
开发语言·javascript·ecmascript
onlooker66661 小时前
Go 语言底层(四) : 深入 Context 上下文
开发语言·数据库·golang
程序员小张丶2 小时前
基于React Native开发HarmonyOS 5.0主题应用技术方案
javascript·react native·react.js·主题·harmonyos5.0
weixin_177297220692 小时前
盲盒一番赏小程序:引领盲盒新潮流
小程序
若水晴空初如梦2 小时前
QT聊天项目DAY14
开发语言·qt