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

本文实例为大家分享了微信小程序云开发分页刷新获取数据的具体代码,供大家参考,具体内容如下

利用云函数调用数据库,在云函数中分页调取数据。再在js中不断将新的数据拼接到旧数据中,在前端显示。初始只显示5条记录,下拉刷新即可获取更多。

微信小程序云开发实现分页刷新获取数据_第1张图片

微信小程序云开发实现分页刷新获取数据_第2张图片

首先在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()
  },

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

你可能感兴趣的:(微信小程序云开发实现分页刷新获取数据)