微信小程序云开发分页刷新获取数据

本文介绍了如何利用云函数和数据库在前端实现分页加载数据。通过在JavaScript中调用云函数,获取指定数量和页码的数据,然后将新数据拼接到已有的数据列表中。在用户滚动页面到底部时,触发云函数调用,更新数据并显示。这种方法提高了用户体验,实现了无刷新加载更多内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

利用云函数调用数据库,在云函数中分页调取数据。再在js中不断将新的数据拼接到旧数据中,在前端显示。初始只显示5条记录,下拉刷新即可获取更多。
在这里插入图片描述在这里插入图片描述
首先在JS中,调用云函数,获取到后端的数据:

/**
 * 从数据库获取数据
 */
  getData(num=5,page=0){
    wx.cloud.callFunction({
      name:"dairyGetlist",  //云函数名
      data:{
        num:num,    //用来记录每次获取数据的数量
        page:page,  //每次从page条数据之后获取数据
      }
    }).then(res=>{
   	  //将新数据拼接到旧数据
      
      var oldData=this.data.dairyObj
      var dr=res.result.data
      //将时间戳写成固定格式
        dr.forEach(item=>{
        var d=new Date(item.time)
        var year=d.getFullYear()
        var month=d.getMonth()+1
        var day=d.getDate()
        item.time=year+"/"+month+"/"+day
        //文本内容中的换行和空格要进行相应的转换,才能保证输出的正确性
        item.content=item.content.split('&hc').join('\n')
      })
      var newData=oldData.concat(res.result.data)
      this.setData({
        dairyObj:newData
      })
    })
  },

然后来到云函数中,对数据库进行操作:

exports.main = async (event, context) => {
//获取参数 
  var num=event.num;
  var page=event.page;
  const { OPENID } = cloud.getWXContext()
  return await db.collection("diarylist").where({
    _openid:OPENID
  }).orderBy('time','desc').skip(page).limit(num).get({
    success:function(res){
      console.log(res.data)
    }
  })
}

数据库返回数据后,每次触底刷新触发云函数的调用:

/**
 * 页面上拉触底事件的处理函数
 */
  onReachBottom: function () {
    wx.showLoading({
      title: '正在加载...',
      mask:true
    })
    //dairyObj是存放日记的数组
    var page=this.data.dairyObj.length
    this.getData(5,page)
    this.changeup()
    wx.hideLoading()
  },
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值