微信小程序实现触底加载
作者:与黑夜为伍 发布时间:2024-04-23 09:30:21
标签:微信小程序,触底加载
现在来看小程序还没有使用pc端的那种分页格式,现在微信小程序上分页一般使用触底加载来实现分页的,下面就来分享一个触底加载的实现方式。
1.首先要从后端也就是服务器上获取分页的数据,如:每页多少条数据,一共分了多少页,大致内容如下图
既然有了数据,那就要在微信端去获取数据了
2.先不考虑分页,把获取到的数据直接显示到微信端
// pages/test/test.js
//引入封装请求路径的模块
const orderApi = require('../../api/order')
//设置当前页数和总页数
var nowPage = 2;
var totalPage;
Page({
/**
* 页面的初始数据
*/
data: {
waitOrder:[]
},
tapPaying: function (options) {
//初始化
nowPage = 2
//查询的方法把查询路径统一封装在orderApi,userOrder是封装的路径名
//status: "wait", merchant: wx.getStorageSync('user').mId 是参数
orderApi.userOrder({ status: "wait", merchant: wx.getStorageSync('user').mId }).then((res) => {
console.log(res)
//获取总页数
totalPage = res.data.totalPages
this.setData({
//把查询到的值赋给数组
waitOrder: res.data
})
}).catch((err) => {
console.log(err)
})
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
this.tapPaying()
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
},
})
3.wxml文件
<!--pages/test/test.wxml-->
<view class="name" wx:for="{{waitOrder}}" wx:for-key="index" wx:for-item="ev">
{{ev.customerName}}
{{waitOrder.length}}
</view>
xcss样式就省略
4.前端显示如下:
5.写触底函数的方法
loadOtherWaitOrder() {
if(nowPage <= totalPage){
orderApi.userOrder({
status: "wait",
merchant: wx.getStorageSync('user').mId,
page:nowPage,
}).then((res) => {
//每次执行自加1
nowPage += 1
let waitOrder = res.data.content
let oldWaitOrder = this.data.waitOrder
//把获取的新数组和旧的数组合并在一起
oldWaitOrder = oldWaitOrder.concat(waitOrder)
this.setData({
waitOrder: oldWaitOrder
})
}).catch((err) => {
console.log(err)
})
}
},
6.把写的触底函数的方法放入到onReachBottom: function () {} 页面上拉触底事件的处理函数中。
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
this.loadOtherWaitOrder()
},
7.现在在触底显示
到此微信小程序触底加载实现完成。
来源:https://blog.csdn.net/javaasd/article/details/108402884


猜你喜欢
- MySQL采用了基于开销的优化器,以确定处理查询的最解方式。在很多情况下,MySQL能够计算最佳的可能查询计划,但在某些情况下,MySQL没
- 一个朋友需要,所以写了这两个,话不多说,看代码中国电信号段 133、149、153、173、177、180、181、189、199中国联通号
- 前言django是一个容易快速上手的web框架,用它来创建内容驱动型的网站(比如独立博客)十分方便。遗憾的是,django并没有提供官方的富
- 遍历数据有以下三种方法:简单对上面三种方法进行说明:iterrows(): 按行遍历,将DataFrame的每一行迭代为(index, Se
- 如何做一个文本搜索? 比较简单,见下:<%Head = "搜索"SearchStri
- 如果需要对列表中的每个元素执行相同操作,这时就需要遍历列表的所有元素。books=['半生缘','往事并不如烟
- 使用MySQL,安全问题不能不注意。以下是MySQL提示的23个注意事项:1。如果客户端和服务器端的连接需要跨越并通过不可信任的网络,那么就
- 背景近期看到一篇文章,真的感叹作者的洞察力,在开发时有可能就会犯这样的错误,所以一定要多学习,多实践。其问题就是你在提交事务时,如果中间有其
- 这两条是关于IE环境中的CSS的。不要使用import引入CSS,可以避免内容的无样式瞬间(FOUC)问题。不要把样式的link放到页面后(
- 我的mysql版本 MYSQL V5.7.9,旧版本请使用:UPDATE mysql.user SET Password=PASSWORD(
- 本文实例讲述了Python网络编程之TCP套接字简单用法。分享给大家供大家参考,具体如下:上学期学的计算机网络,因为之前还未学习python
- 函数执行流程def foo1(b,b1=3): print("foo1 called",b,b1)def
- 一开始没看懂stddev是什么参数,找了一下,在tensorflow/python/ops里有random_ops,其中是这么写的:def
- 木马原理:入侵者使用诸如ASP图片木马生成器之类的工具将一张正常的图片与一个ASP木马文件合并成一个图片文件(即将对网站有害的ASP代码插在
- 一、前言这几天宅在家里网上冲浪,无意间看到了一个比较有趣的项目,就是使用 Python 语言实现对视频中的人物的眨眼进行计数并描绘在图表中。
- 我正在用 MySQL 客户端的时候,突然想到如果可以给查询结果添加排名该多好啊,然后就找到了一个简单的解决办法。下面是一个示例表
- 本文给出一条 SQL 语句用于展示在同一名服务器上,不同的数据库间查询,注意当前连接用户要对两个库都有权限SQL Server 中 SQL
- SQL2008清空删除日志:方法一:USE [master]GOALTER DATABASE AFMS SET RECOVERY SIMPL
- 和单选框一样,许多新手在用 Javascript 验证表单(form)中多选框(checkbox)的值时,都会遇到问题,原因是 checkb
- 为什么要使用多线程?使用多线程,可以同时进行多项任务,可以使用户界面更友好,还可以后台执行某些用时长的任务,同时具有易于通信的优点。pyth