微信小程序下拉加载下一页
小程序做得多了,有些常用功能就有必要记录一下
请看详解:
微信小程序之下拉触底时加载下一页
wxml参考:
<scroll-view class='dataContainer' scroll-y bindscrolltolower="nextDataPage">
<block wx:for="{{userList}}" wx:key="index">
<text>这是一条数据:{{item.data}}</text>
</block>
<view class='bottomline' wx:if="{{userList.length > 0}}" >{{isLastPage?"没有更多数据了":"加载中..."}}</view>
<view class='bottomline' wx:if="{{userList.length == 0}}" >暂时没有数据</view>
</scroll-view>
js参考:
data: {
page:1,
rows:20,
isLastPage:false,
isLoadInterface: false,
userList:[]
},
//查询数据列表
searchDataList:function(pageNum){
let that = this;
let pageIndex = pageNum;
util.ajax({
url: '接口地址',
method: "POST",
data: {
"page": pageIndex,
"rows":that.data.rows
},
success: function (res) {
that.setData({
isLastPage:res.data.islast,
page: pageIndex,
isLoadInterface: false
})
if(res.data.list != undefined){
if (pageIndex > 1){
var listBefore = that.data.userList;
var currentList = res.data.list;
that.setData({
userList:listBefore.concat(currentList)
})
}else{
that.setData({
userList: res.data.list
})
}
}
}, complete(e) {
that.setData({
isShowLoadPage: false
})
}
})
},
// 加载下一页数据
nextDataPage: function () {
let that = this;
let islastVar = that.data.isLastPage;
if (!that.data.isLoadInterface) {
if (!islastVar) {
//防止在接口未执行完再次调用接口
that.setData({
isLoadInterface: true
})
let page = that.data.page * 1 + 1;
that.searchDataList(page);
}
}
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
var that = this;
let page = that.data.page;
that.searchDataList(page);
}
思路:以小程序标签scroll-view作为列表容器,容器方法bindscrolltolower来触发下一页加载
页面onload后执行第一页,非第一页的数据用concat方法拼接之前的数据
防止接口未执行完反复触发bindscrolltolower里的方法,用一个变量isLoadInterface来截断
接口的数据中应有islast这类是否最后一页的参数,用来判断是否加载全部数据
微信小程序下拉加载下一页的更多相关文章
- 微信小程序上拉加载下拉刷新
微信小程序实现上拉加载下拉刷新 使用小程序默认提供方法. (1). 在xxx.json 中开启下拉刷新,需要设置backgroundColor,或者是backgroundTextStyle ,因为加载 ...
- 微信小程序 - 上拉加载下拉刷新
点击下载示例:小程序 - 上拉刷新下拉加载
- 微信小程序之下拉加载和上拉刷新
微信小程序下拉加载和上拉刷新两种实现方法 方法一:onPullDownRefresh和onReachBottom方法实现小程序下拉加载和上拉刷新 首先要在json文件里设置window属性 ...
- 微信小程序上拉加载:onReachBottom详解+设置触发距离
前端经常遇到上拉加载更多的需求,一般还涉及到翻页.小程序里已经给了下拉到底的触发方法onReachBottom(),这里记录下怎样使用这个方法实现下拉加载更多,有需要的直接看代码,有详细注释: 1.首 ...
- 微信小程序之上拉加载更多
loadmore 加载更多(分页加载) 当用户打开一个页面时,假设后台数据量庞大时,一次性地返回所有数据给客户端,页面的打开速度就会有所下降,而且用户只看上面的内容而不需要看后面的内容时,也浪费用户流 ...
- 微信小程序 - 上拉加载
demo.wxml 文件 <view wx:for="{{listdata}}" wx:key="listdata" class='listitem'& ...
- 微信小程序~上拉加载onReachBottom
代码: //页面上拉触底事件的处理函数 onReachBottom(e) { console.log("底部")// 滚动到页面执行 该 方法 wx.showToast({ tit ...
- 微信小程序上拉加载——分页
wxml: <view class="page"> <scroll-view class="imageViewCss_1" scroll-y= ...
- 微信小程序 - 上拉加载更多组件
详情用例看demo,点击下载示例:loadmore
随机推荐
- [代码审计]:PhpMyWind储存型XSS漏洞(CVE-2017-12984)
简介 今天开启一下代码审计的篇章 python安全编程剩下的看起来没意思就结束了 ,现在规划每2周写一个爬虫练练手, 然后今天开启代码审计和Docker的学习 我个人感觉先看漏洞利用过程再看漏洞分析 ...
- webug第十二关:我系统密码忘记了!
第十二关:我系统密码忘记了! 文件上传 直接上传php一句话, 菜刀链接
- bWAPP----iFrame Injection
iFrame Injection 直接上代码 1 <div id="main"> 2 3 <h1>iFrame Injection</h1> 4 ...
- 防sql注入函数
- NO.A.0002——Git简史及安装教程/创建本地仓库/提交项目到本地仓库/误删还原
一.Git简史及同类产品对比: 1.git简史: 同生活中的许多伟大事件一样,Git 诞生于一个极富纷争大举创新的年代.Linux 内核开源项目有着为数众广的参与者.绝大多数的 Linu ...
- 金九银十已到!掌握这300道java高频面试题,助你面试BAT无忧!
前言 不知不觉已经到了九月了,回首看年初的时候简直像做梦一样.不得不说时间真的是无情一般的流逝,题外话就不多说了!回归正题,现在已经到了今年最后一波大好的跳槽涨薪的时机了,错过了这一次可能你就得等到明 ...
- BT下载器Folx标签功能怎么实现自动的资源分类
很多经典的电影作品,比如魔戒三部曲.蜘蛛侠系列.漫威动画系列等,在一个系列中都会包含多个作品.如果使用Folx bt种子下载器自带的电影标签的话,会将这些系列电影都归为"电影"标签 ...
- LeetCode双周赛#33 题解
5480. 可以到达所有点的最少点数目 #贪心 题目链接 题意 给定有向无环图,编号从0到n-1,一个边集数组edges(表示从某个顶点到另一顶点的有向边),现要找到最小的顶点集合,使得从这些点出发, ...
- AppWeb认证绕过漏洞(CVE-2018-8715)
AppWeb认证绕过漏洞(CVE-2018-8715) 一.漏洞描述 Appweb简介 Appweb是一个嵌入式HTTP Web服务器,主要的设计思路是安全.这是直接集成到客户的应用和设备,便于开发和 ...
- 关于String的matches方法
弊端: 虽然String.matches方法最易于看一个字符串是否与正则表达式相匹配.但并不适合在注重性能的情形中重复使用. 问题在于,它内部为正则表达式创建了一个Pattern实例,却只用一次,之后 ...