当前位置:   article > 正文

微信小程序开发系列(三十二)·如何通过小程序的API实现页面的上拉加载(onReachBottom事件)和下拉刷新(onPullDownRefresh事件)_微信小程序onreachbottom

微信小程序onreachbottom

目录

1.  上拉加载

2.  下拉刷新


1.  上拉加载

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

①  在app.json或者page.json中配置距离页面底部距离:onReachBottomDistance;默认50px。

②  在页面.js中定义onReachBottom事件监听用户上拉加载。

        随机找到或者创建一个空页面,我这里使用之前的页面将其中的内容注释掉,找到profile.json文件,编写代码:

  1. {
  2. "usingComponents": {},
  3. "onReachBottomDistance":100
  4. }

        找到profile.scss编写代码:

  1. page{
  2. height: 1000px;
  3. }

        找到profile.js文件,编写代码,编写事件:

  1. Page({
  2. // 监听用户上拉加载
  3. onReachBottom(){
  4. console.log('监听用户上拉加载')
  5. }
  6. })

        找到profile.wxml文件,编写代码,创建一个数组:

<view wx:for="{{ numList }}" wx:key="*this">{{ item }}</view>

         找到profile.js文件,编写代码,在page中添加data数据:

  1. Page({
  2. data:{
  3. numList:[1,2,3]
  4. },
  5. // 监听用户上拉加载
  6. onReachBottom(){
  7. console.log('监听用户上拉加载')
  8. }
  9. })

        编译:

        找到profile.scss文件注释掉之前的代码:

  1. view{
  2. height: 400rpx;
  3. // 弹性布局
  4. display: flex;
  5. // 居中
  6. align-items: center;
  7. justify-content: center;
  8. }
  9. // 奇数页
  10. view:nth-child(odd){
  11. background-color: lightskyblue;
  12. }
  13. // 偶数页
  14. view:nth-child(even){
  15. background-color: lightslategrey;
  16. }

        找到profile.scss文件更改page中的代码:

  1. Page({
  2. data:{
  3. numList: [1, 2, 3]
  4. },
  5. // 监听用户上拉加载
  6. onReachBottom(){
  7. // console.log('监听用户上拉加载')
  8. // 产品需求:
  9. // 当用户上拉需要数字进行累加
  10. // 当用户上拉加载希望对数字进行累加,每次累加三个数字
  11. // 怎么进行累加
  12. // 获取目前数组中最后一项n,n+1,n+2,n+3
  13. // 增加一个提示框
  14. wx.showLoading({
  15. title: '数据加载中...',
  16. })
  17. // 设定一个定时器。在定时到期以后执行注册的回调函数
  18. setTimeout(() => {
  19. // 获取数组的最后一项
  20. const lastNum = this.data.numList[this.data.numList.length-1]
  21. // 需要追加的元素
  22. const newArr = [lastNum + 1,lastNum + 2,lastNum +3]
  23. // 合并初始数组以及追加后的数组
  24. // 例如初始数组[1,2,3]
  25. // 追加后[1,2,3,4,5,6]
  26. this.setData({
  27. numList: [...this.data.numList,...newArr]
  28. })
  29. // 隐藏 loading 提示框
  30. wx.hideLoading()
  31. // 通过更改数字进行更改延时
  32. },100
  33. )
  34. }
  35. })

        编译通过滑动屏幕,实现页面的加载:

2.  下拉刷新

        下拉刷新是小程序中常见的一种刷新方式,当用户下拉页面时,页面会自动刷新,以便用户获取最新的内容。

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

①  在 app.json 或者 page.json 中开启允许下拉,同时可以配置 窗口、loading 样式等。

②  在 页面.js 中定义 onPullDownRefresh 事件监听用户下拉刷新。

        找到profile.json文件,更改:

  1. {
  2. "usingComponents": {},
  3. "onReachBottomDistance":100,
  4. "enablePullDownRefresh": true,
  5. "backgroundColor": "#efefef",
  6. "backgroundTextStyle":"dark"
  7. }

①  usingComponents: 这里可以列出项目中所需要使用的组件,可以在这里注册项目自定义的组件,以便在页面中引用和调用。
②  onReachBottomDistance: 当页面上拉到距底部指定距离时触发 onReachBottom 事件,单位为像素。
③  enablePullDownRefresh: 设置为 true 表示页面可以下拉刷新,用户下拉页面时会触发下拉刷新事件。
④  backgroundColor: 设置页面的背景颜色,这里的 "#efefef" 表示浅灰色。
⑤  backgroundTextStyle: 设置下拉loading的样式,"dark" 表示深色样式,适合浅色背景。

        找到profile.js文件,在page中添加:

  1. // 监听用户下拉刷新
  2. onPullDownRefresh(){
  3. console.log('监听用户下拉刷新')
  4. }

        将其更改为:

  1. // 监听用户下拉刷新
  2. onPullDownRefresh(){
  3. // console.log('监听用户下拉刷新')
  4. // 产品需求:
  5. // 当用户上拉加载更多以后,如果用户进行下拉刷新
  6. // 需要将数据进行重置
  7. this.setData({
  8. numList: [1,2,3]
  9. })
  10. }

        通过上拉多加几个数据:

        下拉会发现数据刷新。

        需要注意一点的是,下拉刷新以后,loading效果有可能不会回弹回去,一次我们可以添加:

  1. // 下拉刷新以后,loading效果有可能不会回弹回去
  2. if (this.data.numList.length === 3){
  3. wx.stopPullDownRefresh()
  4. }

微信小程序开发_时光の尘的博客-CSDN博客

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/528880
推荐阅读
相关标签
  

闽ICP备14008679号