微信小程序實現觸底加載
現在來看小程序還沒有使用pc端的那種分頁格式,現在微信小程序上分頁一般使用觸底加載來實現分頁的,下面就來分享一個觸底加載的實現方式。
1.首先要從後端也就是服務器上獲取分頁的數據,如:每頁多少條數據,一共分瞭多少頁,大致內容如下圖
既然有瞭數據,那就要在微信端去獲取數據瞭
2.先不考慮分頁,把獲取到的數據直接顯示到微信端
// pages/test/test.js //引入封裝請求路徑的模塊 const orderApi = require('../../api/order') //設置當前頁數和總頁數 var nowPage = 2; var totalPage; Page({ /** * 頁面的初始數據 */ data: { waitOrder:[] }, tapPaying: function (options) { //初始化 nowPage = 2 //查詢的方法把查詢路徑統一封裝在orderApi,userOrder是封裝的路徑名 //status: "wait", merchant: wx.getStorageSync('user').mId 是參數 orderApi.userOrder({ status: "wait", merchant: wx.getStorageSync('user').mId }).then((res) => { console.log(res) //獲取總頁數 totalPage = res.data.totalPages this.setData({ //把查詢到的值賦給數組 waitOrder: res.data }) }).catch((err) => { console.log(err) }) }, /** * 生命周期函數--監聽頁面加載 */ onLoad: function (options) { this.tapPaying() }, /** * 頁面上拉觸底事件的處理函數 */ onReachBottom: function () { }, })
3.wxml文件
<!--pages/test/test.wxml--> <view class="name" wx:for="{{waitOrder}}" wx:for-key="index" wx:for-item="ev"> {{ev.customerName}} {{waitOrder.length}} </view>
xcss樣式就省略
4.前端顯示如下:
5.寫觸底函數的方法
loadOtherWaitOrder() { if(nowPage <= totalPage){ orderApi.userOrder({ status: "wait", merchant: wx.getStorageSync('user').mId, page:nowPage, }).then((res) => { //每次執行自加1 nowPage += 1 let waitOrder = res.data.content let oldWaitOrder = this.data.waitOrder //把獲取的新數組和舊的數組合並在一起 oldWaitOrder = oldWaitOrder.concat(waitOrder) this.setData({ waitOrder: oldWaitOrder }) }).catch((err) => { console.log(err) }) } },
6.把寫的觸底函數的方法放入到onReachBottom: function () {} 頁面上拉觸底事件的處理函數中。
/** * 頁面上拉觸底事件的處理函數 */ onReachBottom: function () { this.loadOtherWaitOrder() },
7.現在在觸底顯示
到此微信小程序觸底加載實現完成。
以上就是本文的全部內容,希望對大傢的學習有所幫助,也希望大傢多多支持WalkonNet。
推薦閱讀:
- 微信小程序實現分頁功能
- 微信小程序scroll-view實現上拉加載數據重復的解決方法
- 一篇文章告訴你如何實現Vue前端分頁和後端分頁
- 微信小程序實現授權登錄之獲取用戶信息
- 微信小程序實現觸底加載與下拉刷新的示例代碼