微信小程序列表页上拉加载更多数据-入门

  onShow(){
    this.getList() //也可以放在onLoad里面看实际需求
  }
  getList() {
    util.request(api.teachPlanOwnList, { //这里是请求的接口和方式 不重要
      userId: userInfo.userId,
      pageSize: pageSize,
      pageNum: pageNum,
      sortType: sortType
    }, 'POST').then(res => {
      // console.log(res);
      if (res.code == 200) {
        let list = this.data.planList.concat(res.rows.map(item=>{ //对数据做处理 不重要
          let createTime = item.createTime.split(" ")[0].replace(/-/g, ".");
          item.createTime = createTime;
          if(!item.scheduledTime || item.scheduledTime == 'null'){
            item.scheduledTime = '未安排时间'
          }
          return item;
        }));
        this.setData({
          planList: list //这里是重点
        })
        // 判断是否加载完毕
        if (list.length >= res.total) { //这里是重点
          this.setData({
            flag: true, //这里是重点
            moreTxt: '-无更多数据-'
          })
        } else {
          pageNum = pageNum + 1;
          this.setData({
            flag: false, //这里是重点
            moreTxt: '-更多-'
          })
        }
      } else {
        wx.showModal({
          title: res.msg,
          icon: 'error',
          showCancel: false,
          duration: 3000
        });
      }
    })
  },

  onReachBottom() { //这里是重点 onReachBottom是微信小程序的原生方法
    if (this.data.flag) return
    this.getTeachPlanOwnList();
  },

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
微信小程序Demo–吃货APP(上拉加载更多,下刷新)是一个功能丰富且易于定制的源码项目。它为开发者提供了一个直观的平台,用于学习、实践以及优化小程序开发中的各种关键技术。 该Demo的核心功能围绕“吃货”主题展开,展示了美食推荐、分类筛选、搜索、查看图文详情以及收藏等功能。用户界面简洁直观,符合主流的审美习惯和操作逻辑,极大地提升了用户体验。 在技术实现上,该项目采用了业界领先的小程序开发框架,并深度集成了微信官方提供的各种API和组件。通过封装了网络请求、数据缓存等常用功能的自定义模块,项目实现了高效的数据交互和处理机制,确保了应用的稳定性和流畅性。 值得一提的是,该Demo特别强调了上拉加载和下刷新的实现方式。上拉加载功能允许用户在浏览过程中轻松加载更多内容,无需频繁切换面;而下刷新则提供了即时的数据更新机制,确保用户能够获取到最新的信息。 此外,项目还充分考虑了二次开发的定制需求。其源码结构清晰、注释详细,为开发者提供了充分的自由度和灵活性,可以根据自身需求进行定制和扩展。无论是添加新功能还是优化现有体验,都能轻松应对。 总之,微信小程序Demo–吃货APP(上拉加载更多,下刷新)是一个集实用性、易用性和可扩展性于一体的优质源码项目。无论您是小程序开发的新手还是资深专家,都能从中获得宝贵的经验和启示。
实现微信小程序上拉加载更多数据,你可以通过以下步骤实现: 1. 在 wxml 文件中添加一个 scroll-view 组件,并设置其 scroll-into-view 属性为一个变量,用于记录当前滚动到的位置。 2. 在 js 文件中,定义一个变量 page,表示当前加载数,初始值为 1。 3. 在 scroll-view 组件上绑定一个 scrolltolower 事件,当滚动到底部时触发该事件。 4. 在 scrolltolower 事件中,发送请求获取下一数据,并将 page 加 1。 5. 将获取到的数据添加到原有数据列表中。 6. 在获取数据之前,显示一个 loading 提示。 7. 在请求结束后,隐藏 loading 提示,并更新 scroll-into-view 属性,将面滚动到数据的最后一项。 以下是一个简单的示例代码: ``` // wxml 文件 <scroll-view scroll-into-view="{{scrollIntoView}}" scroll-y="true" bindscrolltolower="loadMoreData"> <view wx:for="{{dataList}}" wx:key="{{index}}">{{item}}</view> </scroll-view> // js 文件 Page({ data: { dataList: [], // 数据列表 page: 1, // 当前数 scrollIntoView: '', // 当前滚动到的位置 loading: false // 是否正在加载数据 }, onLoad: function () { this.loadData() }, // 加载第一数据 loadData: function () { // 显示 loading 提示 wx.showLoading({ title: '加载中', }) // 发送请求获取数据 wx.request({ url: 'https://example.com/api/data?page=1', success: res => { // 隐藏 loading 提示 wx.hideLoading() // 更新数据列表 this.setData({ dataList: res.data.data }) } }) }, // 加载更多数据 loadMoreData: function () { // 如果正在加载数据,则不处理 if (this.data.loading) { return } // 显示 loading 提示 wx.showLoading({ title: '加载中', }) // 发送请求获取数据 wx.request({ url: 'https://example.com/api/data?page=' + (this.data.page + 1), success: res => { // 隐藏 loading 提示 wx.hideLoading() // 更新数据列表 this.setData({ dataList: this.data.dataList.concat(res.data.data), page: this.data.page + 1, scrollIntoView: 'item-' + (this.data.dataList.length - 1) // 将面滚动到最后一项 }) }, complete: () => { // 标记数据加载完成 this.setData({ loading: false }) } }) // 标记正在加载数据 this.setData({ loading: true }) } }) ``` 在上述示例中,我们使用了 wx.showLoading 和 wx.hideLoading 方法来显示和隐藏 loading 提示。注意,在请求结束后,需要在 complete 回调函数中调用 setData 方法,以更新 loading 变量的值。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值