当前位置:   article > 正文

微信小程序上拉加载,分页数据_小程序上拉加载分页

小程序上拉加载分页

目录

1.页面上拉加载

2.scroll-view上拉加载


1.页面上拉加载

微信小程序提供onReachBottom()上拉事件,链接:https://developers.weixin.qq.com/miniprogram/dev/reference/api/Page.html#onReachBottom

onReachBottom()事件直接调用就可以。

在进行调用时要对当前页和总页数进行对比,判断是否要进行刷新数据

  1. data: {
  2. list:'',//数据列表
  3. page:1,//请求的第几页
  4. size:10, //每页多少条哦
  5. totalpage:1,//总页数
  6. },
  7. onShow() {
  8. this.getList()
  9. },
  10. // 上拉事件
  11. onReachBottom(){
  12. if(this.data.page<=this.data.totalpage){
  13. this.getList()
  14. }
  15. },
  16. getList(){
  17. let page=this.data.page
  18. //接口参数
  19. let params={
  20. page: this.data.page,
  21. size: this.data.size
  22. }
  23. //获取数据的接口请求成功后
  24. page++
  25. this.setData({
  26. [`list[${this.data.page-1}]`]:items,//items:后台返回数据
  27. page:page,
  28. totalpage:res.data.totalpage
  29. })
  30. //... [`list[${this.data.page-1}]`]:items这种写法是为避免setData数据量过大,list数据在使用时需注意多循环一层
  31. },
  1. <block class="" wx:for="{{list}}" wx:for-item="pitem" wx:for-index="pindex" wx:key="{{pindex}}">
  2. <view class="" wx:for="{{pitem}}" wx:key="{{index}}">{{item}}</view>
  3. </block>

2.scroll-view上拉加载

请先看文档https://developers.weixin.qq.com/miniprogram/dev/component/scroll-view.html

在这里需要用到lower-threshold, bindscrolltolower两个属性

lower-threshold:距底部/右边多远时,触发 scrolltolower 事件,默认值50

bindscrolltolower:滚动到底部/右边时触发

其实也没什么好说的,和页面上拉加载是一样的

注意:bindscrolltolower 到底部会一直触发,需要要定义一个变量来控制

.wxml

  1. <scroll-view scroll-y="true" style="height: 100%;" lower-threshold="200" bindscrolltolower="scrollToLower">
  2. </scroll-view>

.js

  1. data: {
  2. list:'',//数据列表
  3. page:1,//请求的第几页
  4. size:10, //每页多少条哦
  5. totalpage:1,//总页数
  6. loading:false,//控制变量
  7. },
  8. onShow() {
  9. this.getList()
  10. },
  11. // scroll-view触底事件
  12. scrollToLower(){
  13. if(!this.data.loading && this.data.page<=this.data.totalpage){
  14. this.setData({
  15. loading:true
  16. })
  17. this.getList()
  18. }
  19. },
  20. getList(){
  21. let page=this.data.page
  22. //接口参数
  23. let params={
  24. page: this.data.page,
  25. size: this.data.size
  26. }
  27. //获取数据的接口请求成功后
  28. page++
  29. this.setData({
  30. [`list[${this.data.page-1}]`]:items,//items:后台返回数据
  31. page:page,
  32. totalpage:res.data.totalpage,
  33. loading:false
  34. })
  35. },

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

闽ICP备14008679号