当前位置: 首页 > news >正文

【微信小程序】列表滚动触底更新实现

微信小程序开发系列


目录

  • 前言
  • 一、上拉触底事件函数onReachBottom
  • 二、实现


前言

在微信小程序开发中经常遇到分页列表需要滚动到底部之后进行请求数据更新,下面介绍如何进行触底更新分页展示。使用到页面上拉触底事件的处理函数onReachBottom


一、上拉触底事件函数onReachBottom

监听用户上拉触底事件,可以在app.json的window选项中或页面配置中设置触发距离onReachBottomDistance。在触发距离内滑动期间,本事件只会被触发一次。
代码:

page.js

 /*** 页面上拉触底事件的处理函数*/onReachBottom: function() {},

app.json

  "window": {"backgroundTextStyle": "light","navigationBarBackgroundColor": "#fff","navigationBarTitleText": "练习","navigationBarTextStyle": "black","onReachBottomDistance": 100},

设置不同onReachBottomDistance的值,当滚动到不同位置时就会触发,单位是px。

二、实现

var http = require('../../utils/http.js');
var config = require('../../utils/config.js');Page({/*** 页面的初始数据*/data: {list: [],current: 1,pages: 0,sts: 0},/*** 生命周期函数--监听页面加载*/onLoad: function(options) {if (options.sts) {this.setData({sts: options.sts});this.loadOrderData(options.sts, 1);} else {this.loadOrderData(0, 1);}},/*** 加载订单数据*/loadOrderData: function(sts, current) {var ths = this;wx.showLoading();//显示加载中//加载订单列表var params = {url: "page/myOrder",method: "GET",data: {current: current,size: 10,status: sts,},callBack: function(res) {var list = [];if (res.current == 1) {list = res.records;} else {list = ths.data.list;Array.prototype.push.apply(list, res.records);//设置请求的最新数据}ths.setData({list: list,pages: res.pages,current: res.current});wx.hideLoading();//隐藏加载中}};http.request(params);},/*** 状态点击事件*/onStsTap: function(e) {},/*** 生命周期函数--监听页面初次渲染完成*/onReady: function() {},/*** 生命周期函数--监听页面显示*/onShow: function() {},/*** 生命周期函数--监听页面隐藏*/onHide: function() {},/*** 生命周期函数--监听页面卸载*/onUnload: function() {},/*** 页面相关事件处理函数--监听用户下拉动作*/onPullDownRefresh: function() {},/*** 页面上拉触底事件的处理函数*/onReachBottom: function() {if (this.data.current < this.data.pages) {//判断是否超过总页数this.loadOrderData(this.data.sts, this.data.current + 1);//加载数据}},/*** 用户点击右上角分享*/onShareAppMessage: function() {}
})
http://www.lryc.cn/news/129887.html

相关文章:

  • 2023全国大学生数学建模竞赛A题B题C题D题E题思路+模型+代码+论文
  • Git常见操作
  • thinkphp6前后端验证码分离以及验证
  • jenkinsfile自动部署接口
  • 26. 删除有序数组中的重复项
  • vue父页面获取子组件绑定值
  • FPGA_学习_17_IP核_ROM(无延迟-立即输出)
  • CentOS7.6安装mysql8.0.34
  • SCF金融公链新加坡启动会 链结创新驱动未来
  • JavaScript【实例、静态方法与属性、原型链、instanceof 运算符、Object 对象的相关方法、对象的继承、多重继承、严格模式】(十九)
  • 【Git】本地搭建Gitee、Github环境
  • 学习ts(四)联合类型、交叉类型、类型断言
  • Linux 内核与架构速查
  • 【Java 动态数据统计图】动态数据统计思路案例(动态,排序,containsKey)五(117)
  • 区块链碎碎念
  • 4.物联网LWIP之C/S编程
  • 在 PyTorch 中使用关键点 RCNN 进行人体姿势估计--附源码
  • Dubbo及Zookeeper安装
  • ZK-C3595、ZK-C35100、ZK-C40100、ZK-C40110超越离合器
  • Azure共享映像库构建VM镜像
  • 【C++】AVL树(平衡二叉树)
  • 「UG/NX」Block UI 面收集器FaceCollector
  • 剑指Offer61.扑克牌中的顺子 C++
  • vue实例挂载过程
  • 【第八讲---视觉里程计2】
  • 设置PHP的fpm的系统性能参数pm.max_children
  • vue3setup标签语法 + vite + delfin 递归组件实现无限评论功能
  • optee中如何开启或关闭所有中断的
  • 基于STM32+微信小程序设计的宠物投喂装置(腾讯云IOT)
  • 2023年上半年软考分数线 软考分数线公布时间