小程序API —— 55页面处理函数 -上拉加载

上拉加载是小程序中常见的一种加载方式,当用户滑动页面到底部时,会自动加载更多的内容,以便用户继续浏览;

小程序中实现上拉加载的方式:

  1. 在 app.json 或者 page.json 中配置距离页面底部的距离:onReachBottonDistance;默认取 50px;
  2. 在页面.js 中定义· onReachBottom 事件监听用户上拉加载;

下面我们使用微信开发者工具来演示一下上拉加载功能:

  • 在 pages/cate/cate.json 文件中配置 onReachBottonDistance 参数值,这里设置为 100px,表示具体底部为 100px 时触发上拉加载函数,如下:

    yaml 复制代码
    {
      "usingComponents": {},
      "onReachBottomDistance": 100
    }
  • 在 pages/cate/cate.scss 文件中配置页面高度为 1000 px,用于显示上拉效果,如下:

    css 复制代码
    page {
      height: 1000px;
    }
  • 在 pages/cate/cate.js 文件中定义 onReachBottom 事件监听用户上拉加载,如下:

    javascript 复制代码
    Page({
      // 监听用户上拉加载
      onReachBottom(){
        console.log("监听用户上拉加载");
      }
    })
  • 点击编辑,可以看到页面右侧有一个滚动条,上拉页面,当距离 page 底部还有 100px 的时候,触发 js 文件中定义的 onReachBottom 事件,可以看到在 Console 中输出了 console 打印的信息,如下:

接着使用微信开发者工具实现一个需求:当页面上拉加载时,页面当前显示的数字不断变大;

  • 在 pages/cate/cate.wxml 中添加初始页面布局,如下:

    html 复制代码
    <view wx:for="{{ numList }}" wx:key="*this" class="{{ ((index + 1) % 2 === 0) ? 'even' : 'odd' }}">
      {{ item }}
    </view>
  • 在 pages/cate/cate.scss中添加样式调整,设置 view 的高度,使用 flex 流式布局,同时对奇数和偶数设置不同的背景颜色,如下:

    css 复制代码
    view {
      height: 400rpx;
      display: flex;
      align-items: center;
      justify-content: center;
    }
    
    .odd {
      background-color: lightskyblue;
    }
    
    .even {
      background-color: lightsalmon;
    }
  • 在 pages/cate/cate.js 中实现具体的逻辑,当滑动到页面底部时,给 numList 数据增加新值,使其不断变大,如下:

    javascript 复制代码
    Page({
    
      data: {
        numList: [1, 2, 3]
      },
    
      // 监听用户上拉加载
      onReachBottom(){
        
        wx.showLoading({
          title: '数据加载中',
        })
    
        // 当上拉时,需要数字进行累加
        // 使用 setTimeout 模拟服务器请求(需要等待数据发送接收)
        setTimeout(()=>{
          // 获取数组最后一项
          const lastNum = this.data.numList[this.data.numList.length - 1];
          // 定义需要追加的元素
          const newArr = [lastNum + 1, lastNum + 2, lastNum + 3];
    
          // 更新数据
          this.setData({
            numList: [...this.data.numList, ...newArr]
          })
          wx.hideLoading()
        }, 1500)
      }
    })
  • 点击编译,上拉页面,可以看到当前页面的数值不断变大,如下所示:

    参考视频:尚硅谷微信小程序开发教程

相关推荐
维双云3 小时前
社区生鲜小程序怎么做?4个经营环节。
小程序·零售
2601_949950636 小时前
成绩提升不靠盲目刷题:用练题簿找准真正的薄弱知识点
学习·小程序·刷题·小程序推荐
今日热点8 小时前
微信小程序主体变更公证全流程实操解析:场景条件、材料规范、驳回避坑与Python校验脚本实现
python·微信小程序·小程序
Buke..8 小时前
【小程序逆向】某游快爆 AI 逆向 sign参数:AI 辅助分析与 MCP 工具链实战
前端·人工智能·爬虫·python·小程序·notepad++
T011561811 小时前
艺培场馆课时预约小程序用户端 & 后台联动踩坑上篇(预约、课时、缓存、消息、学员端自身问题)
java·缓存·小程序·bug·全栈项目实战手记·艺培课时系统‘’
维双云13 小时前
宠物门店小程序怎么搭?从预约到复购的完整思路。
小程序·宠物
云云只是个程序马喽1 天前
短剧/推文/AI创作变现小程序完整落地方案:自研vs成熟系统成本对比+全流程实现指南
人工智能·小程序
show4332 天前
2026微信小程序创作工具生态技术趋势:从单一功能到AI整合型平台演进
人工智能·微信小程序·小程序
paopaokaka_luck2 天前
停车小程序(车牌OCR智能识别、地图API、Echarts图形化分析、智能车位预约、自动计费与订单处理)
小程序·ocr·echarts
单词记忆方法研究2 天前
大学英语单词:我踩过的坑,和你该走的路
机器学习·小程序·学习方法