微信小程序雲開發實現分頁刷新獲取數據

本文實例為大傢分享瞭微信小程序雲開發分頁刷新獲取數據的具體代碼,供大傢參考,具體內容如下

利用雲函數調用數據庫,在雲函數中分頁調取數據。再在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()
  },

以上就是本文的全部內容,希望對大傢的學習有所幫助,也希望大傢多多支持WalkonNet。

推薦閱讀: