微信小程序上拉加载:onReachBottom详解+设置触发距离
前端经常遇到上拉加载更多的需求,一般还涉及到翻页。小程序里已经给了下拉到底的触发方法onReachBottom(),这里记录下怎样使用这个方法实现下拉加载更多,有需要的直接看代码,有详细注释:
1、首先在data里定义一下返回数据data,和翻页的页数pagenum
  data: {
    datalist: [], //.wxml文件需要绑定的列表,我这里用的数据类型是数组
    pagenum: 1, //初始页默认值为1
  },
2、具体的请求过程,包含新老数据的数组合并,实现数据实时更新
  getdatalist: function () { //可在onLoad中设置为进入页面默认加载
   var that = this;
    wx.request({
      url: '请求地址',
      data: {
        "key": "某入参value",
        "pageNum": that.data.pagenum, //从数据里获取当前页数
        "pageSize": 10, //每页显示条数
      },
      method: "POST",
      success: function (res) {
        var arr1 = that.data.datalist; //从data获取当前datalist数组
        var arr2 = res.data; //从此次请求返回的数据中获取新数组
        arr1 = arr1.concat(arr2); //合并数组
        that.setData({
          datalist: arr1 //合并后更新datalist
        })
      },
      fail: function (err) { },//请求失败
      complete: function () { }//请求完成后执行的函数
    })
  }
3、翻页时更新页码pagenum+1,并触发新一轮请求,和第2部形成循环。
  onReachBottom: function () { //触底开始下一页
    var that=this;
    var pagenum = that.data.pagenum + 1; //获取当前页数并+1
    that.setData({
      pagenum: pagenum, //更新当前页数
    })
    that.getdatalist();//重新调用请求获取下一页数据
  },
4、如果想要实现无感加载,还可以在.json文件中给onReachBottom()设定触发距离,这样不用拉到最底部就开始触发onReachBottom翻页:
"onReachBottomDistance":300 //可以在当前页也可以全局设置
微信小程序上拉加载:onReachBottom详解+设置触发距离的更多相关文章
- 微信小程序~上拉加载onReachBottom
		
代码: //页面上拉触底事件的处理函数 onReachBottom(e) { console.log("底部")// 滚动到页面执行 该 方法 wx.showToast({ tit ...
 - 微信小程序上拉加载下拉刷新
		
微信小程序实现上拉加载下拉刷新 使用小程序默认提供方法. (1). 在xxx.json 中开启下拉刷新,需要设置backgroundColor,或者是backgroundTextStyle ,因为加载 ...
 - 微信小程序 - 上拉加载下拉刷新
		
点击下载示例:小程序 - 上拉刷新下拉加载
 - 微信小程序 - 上拉加载
		
demo.wxml 文件 <view wx:for="{{listdata}}" wx:key="listdata" class='listitem'& ...
 - 微信小程序上拉加载——分页
		
wxml: <view class="page"> <scroll-view class="imageViewCss_1" scroll-y= ...
 - 微信小程序 - 上拉加载更多组件
		
详情用例看demo,点击下载示例:loadmore
 - 微信小程序之下拉加载和上拉刷新
		
微信小程序下拉加载和上拉刷新两种实现方法 方法一:onPullDownRefresh和onReachBottom方法实现小程序下拉加载和上拉刷新 首先要在json文件里设置window属性 ...
 - 微信小程序下拉加载和上拉刷新两种实现方法
		
方法一:onPullDownRefresh和onReachBottom方法实现小程序下拉加载和上拉刷新 首先要在json文件里设置window属性 设置js里onPullDownRefresh和onR ...
 - 微信小程序之上拉加载更多
		
loadmore 加载更多(分页加载) 当用户打开一个页面时,假设后台数据量庞大时,一次性地返回所有数据给客户端,页面的打开速度就会有所下降,而且用户只看上面的内容而不需要看后面的内容时,也浪费用户流 ...
 
随机推荐
- IndexError:list assignment index out of range
			
L=[] L[0]=2 L[1]=3 报错:IndexError: list assignment index out of range,列表超过限制 一种情况是:list[index]的index超 ...
 - websocket原理和基于c/c++实现的websocket协议栈(更新中)
			
参考: 博客1:http://blog.sina.com.cn/s/blog_bf397e780102w25k.html https://www.cnblogs.com/barrywxx/p/7412 ...
 - 关于Xgboost的笔记
 - JZ-055-链表中环的入口结点
			
链表中环的入口结点 题目描述 给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,输出null. 题目链接: 链表中环的入口结点 代码 import java.util.ArrayList; ...
 - Ajax的疑难杂种详解
			
跨域问题 如图所示,这是通过jquery封装的ajax请求了一个本地的php文件(无框架),console提示CORS策略已阻止"来自来源"的"null":请求 ...
 - 08 Java的方法 方法的定义
			
2.方法的定义 Java的方法类似于其他语言的函数,是一段用来完成特定功能的代码片段,一般情况下,定义一个方法包含以下语法: **方法包含一个方法头和一个方法体.**下面是一个方法的所有部分: 修饰符 ...
 - Spring系列25:Spring AOP 切点详解
			
本文内容 Spring 10种切点表达式详解 切点的组合使用 公共切点的定义 声明切点@Poincut @Poincut 的使用格式如下: @Poincut("PCD") // 切 ...
 - MySQL between and 边界测试
			
看到有一些博客说 between and 有不含边界的情况,于是测试了一把,记录如下.先说结论:between and 不存在不含边界的情况 1. between and 是包含边界的 id betw ...
 - Ubuntu系统中防火墙的使用和开放端口
			
目录 Ubuntu系统 防火墙的使用和开放端口 1.安装防火墙 2.查看防火墙状态 3.开启.重启.关闭防火墙 4.Ubuntu添加开放.关闭端口 5.开放规定协议的端口 6.关闭指定协议端口 7.开 ...
 - oracle中regexp_like/instr/substr/replace介绍和例子
			
ORACLE中的支持正则表达式的函数主要有下面四个: 1,REGEXP_LIKE :与LIKE的功能相似 2,REGEXP_INSTR :与INSTR的功能相似 3,REGEXP_SUBSTR :与S ...