加载更多,其实就是再次向接口发送请求,把返回的数据,追加到渲染页面的数组里的过程,具体实现实例如下:

demo.js

// pages/project/project.js
const app = getApp()
Page({ /**
* 页面的初始数据
*/
data: { //每页显示的行数:
pagesize: 7,
//页码(从1开始):
p: 1, //排序方式:
paixu: 'viewcount',
//升序或降序:
order: 'desc', //用于标识是否还有更多的状态
state: 1, //用于渲染页面的数组
arrayProject:[], //用于数组的追加和暂存
allProject:[],
}, /**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
var mythis = this;
getproinfo( this.data.pagesize, this.data.p,mythis)
}, /**
* 点击加载更多时触发
*/
loadMore:function(){
var mythis = this;
wx.showLoading({
title: '玩命加载中...',
});
mythis.data.p = mythis.data.p + 1;
getproinfo(this.data.pagesize, this.data.p,mythis);
wx.hideLoading();
}, /**
* 页面上拉触底事件的处理函数,与点击加载更多做同样的操作
*/
onReachBottom: function () {
var mythis = this;
wx.showLoading({
title: '玩命加载中...',
});
mythis.data.p = mythis.data.p + 1;
getproinfo(this.data.pagesize, this.data.p,mythis);
wx.hideLoading(); }, }) /**
* 获取项目列表
*/
function getproinfo(pagesize, p, mythis){ wx.request({
url: app.globalData.host + 'index.php/Ho/getproinfo',
method: 'post',
data: {
pagesize: pagesize,
p:p
},
header: {
'content-type': 'application/x-www-form-urlencoded'
}, success: function (res) {
//如果搜出来的结果<1 就说明后面已经没数据可加载了,所以将state设为0
if (res.data.rows.length<1)
mythis.setData({
state: 0
});
else{
var state1 = 1;
//如果有数据,但小于每次期望加载的数据量(pagesize),将state设为0,表示后面已没有数据可加载
if (res.data.rows.length < mythis.data.pagesize)
var state1 = 0;
//循环将结果集追加到数组后面
for (var i = 0; i < res.data.rows.length; i++) {
mythis.data.allProject.push(res.data.rows[i]);
}
mythis.setData({
arrayProject: mythis.data.allProject,
state: state1
});
}
console.log(mythis.data.arrayProject)
},
fail: function (res) {
console.log(res);
}
});
}

demo.html

 <view class='projectlist' >
<view class='project' wx:for="{{arrayProject}}" wx:for-item="itemProjec" wx:key="id" data-datas="{{itemProjec}}" bindtap='projectDetail'>
<view class='projectText'> {{itemProjec.gongchengmingcheng}} </view>
<view class='projectleibie label'> {{arrayCategory[itemProjec.leixing].name}} </view>
<view class='projectjiesuan label'> {{arraySchedule[itemProjec.jieduan].name}} </view>
<view class='projectTime'> {{itemProjec.faburiqi}} </view>
</view>
<!--
实现点击“加载更多”时进行加载
<view class='remind' bindtap='loadMore' wx:if="{{state==0}}"><view><<加载更多<<</view></view>
<view class='remind' wx:elif="{{state==0}}"><view>没有更多了</view></view>
-->
//实现屏幕上拉加载更多
<view class='remind' wx:if="{{state==0}}"><view>没有更多了</view></view>
</view>

微信小程序 无限加载 上拉加载更多的更多相关文章

  1. 【微信小程序】scroll-view 的上拉加载和下拉刷新

    1.在微信小程序中,想到 下拉刷新 和 上拉加载,如果是整个页面都拖动的话,可以在页面配置中,配置 enablePullDownRefresh 和 onReachBottomDistance 然后在 ...

  2. 微信小程序开发——列表分页上拉加载封装实现(订单列表为例,订单状态改变后刷新列表滚动位置不变)

    业务需求: 业务需求是给订单列表添加分页功能,也就是上拉加载这种每次只请求加载固定数量的数据. 需求分析: 对业务来说就是简单的分页上拉加载,但是对于技术实现来说,除了要处理分页数据的累加加载,还要处 ...

  3. wepy小程序实现列表分页上拉加载(2)

    第一篇:wepy小程序实现列表分页上拉加载(1) 本文接着上一篇内容: 4.优化-添加加载动画 (1)首先写加载动画的结构和样式 打开list.wpy文件 template结构代码: <temp ...

  4. wepy小程序实现列表分页上拉加载(1)

    使用wepy开发微信小程序商城第一篇:项目初始化 使用wepy开发微信小程序商城第二篇:路由配置和页面结构 列表页效果图: 1.新建列表页 (1)在pages里面新建一个list.wpy文件 初始代码 ...

  5. [微信小程序] 微信小程序获取用户定位信息并加载对应城市信息,wx.getLocation,腾讯地图小程序api,微信小程序经纬度逆解析地理信息

    因为需要在小程序加个定位并加载对应城市信息 然而小程序自带api目前只能获取经纬度不能逆解析,虽然自己解析方式,但是同时也要调用地图,难道用户每次进小程序还要强行打开地图选择地址才定位吗?多麻烦也不利 ...

  6. 微信小程序之自定义select下拉选项框组件

    知识点:组件,animation,获取当前点击元素的索引与内容 微信小程序中没有select下拉选项框,所以只有自定义.自定义的话,可以选择模板的方式,也可以选择组件的方式来创建. 这次我选择了组件, ...

  7. 微信小程序 在canvas画布上划动,页面禁止滑动

    要实现微信小程序 在canvas画布上划动,页面禁止滑动,不仅要设置disable-scroll="true",还要要给canvas绑定一个触摸事件才能生效. <canvas ...

  8. 微信小程序简单封装图片上传组件

    微信小程序简单封装图片上传组件 希望自己 "day day up" -----小陶 我从哪里来 在写小程序的时候需要上传图片,个人觉得官方提供的 Uploader 组件不是太好用, ...

  9. 微信小程序(2)--下拉刷新和上拉加载更多

    下拉刷新 1.首先在.json文件中配置(如果在app.json文件中配置,那么整个程序都可以下拉刷新.如果写在具体页面的.json文件中,那么就是对应的页面下拉刷新.) 具体页面的.json文件: ...

随机推荐

  1. SSH KEY 设置 目录在open ~ 根目录下的.ssh 里面

    当我们从github或者gitlab上clone项目或者参与项目时,需要证明我们的身份.github.gitlab支持使用SSH协议进行免密登录,而SSH协议采用了RSA算法保证了登录的安全性.我们要 ...

  2. 6-1 建立客户端与zk服务端的连接

    6-1 建立客户端与zk服务端的连接 zookeeper原生java api使用 会话连接与恢复; 节点的增删改查; watch与acl的相关操作; 导入jar包;

  3. js全选 反选

    // 全选 反选 allChoose: function (o) { var obj = $.extend(true, { id: "#id", name: "name& ...

  4. Teams UVA - 11609

    题意就不多说了这个小规律不算难,比较容易发现,就是让你求一个数n*2^(n-1):很好想只是代码实现起来还是有点小困(简)难(单)滴啦,一个快速幂就OK了: 代码: #include<stdio ...

  5. ASP.NET 4.x Web Api Odata v4 backend modify query 修改查询

    有时候我们会想给予权限添加 filter 到查询上. 比如 会员和管理员都使用了 /api/products 作为 product 查询 但是会员不应该可以看见还没有上架的货品 /api/produc ...

  6. mysql索引优化比普通查询速度快多少

    mysql索引优化比普通查询速度快多少 一.总结 一句话总结:普通查询全表查询,速度较慢,索引优化的话拿空间换时间,一针见血,所以速度要快很多. 索引优化快很多 空间换时间 1.软件层面优化数据库查询 ...

  7. RESTful Web Services中API的设计原则(转)

    当下前后端分离的设计已经是web app开发的标配,但是如何设计一个强壮,扩展性好,又规范的API呢 参考以下link,可以得到需要有益的启示.同时个人推荐一本书<web API的设计和开发&g ...

  8. 常见的ORACLE语句

    基本 --新建表: create table table1( id varchar(300) primary key, name varchar(200) not null); --插入数据 inse ...

  9. linux文件管理之bash shell

    BASH Shell 对文件进行管理 ========================================================创建.复制.删除.移动.查看.编辑.压缩.查找 内 ...

  10. usaco Transformations

    模拟就行.注意int arr[][]二维数组在定义时是二维数组,而函数传参时是指针.这意味着memset()的不同.传参时只能当作一维逐个memset. #include <iostream&g ...