生三从境界:昨夜西风凋碧树,独上高楼,望尽天涯路。 衣带渐宽终不悔,为伊消得人憔悴。 众里寻他千百度,蓦然回首,那人却在灯火阑珊处。人

随笔 - 151  文章 - 0  评论 - 117  阅读 - 108万 

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

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>
复制代码

 

posted on   测试开发喵  阅读(9703)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示