最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

微信小程序使用onreachBottom實現頁面觸底加載及分頁效果

 更新時間:2022年10月18日 09:35:35   作者:孔祥宙  
小程序還沒有使用pc端的那種分頁格式,下面這篇文章主要給大家介紹了關于微信小程序使用onreachBottom實現頁面觸底加載及分頁效果的相關資料,需要的朋友可以參考下

一 簡要介紹一下onreachBottom事件

onreachBottom和onLoad以及onShow一樣,都屬于小程序的生命周期事件,作用就是在頁面下拉到底部時觸發(fā)這個事件,一般適用于數據比較多的情況下,實現懶加載并分頁展示數據。

截圖中展示了小程序對onreachBottom事件的具體解釋和參數。

二  實例展示

此次展示的實例是在小程序首頁加載二手車車源信息的下拉分頁加載數據的效果。

首先需要在data里面初始化分頁的頁數和獲取的數據數組。

寫好觸底之后加載新數據并保留老數據的方法。我把加載第一頁數據和觸底加載新數據寫在了一個方法里面,方法里面加入了一個布爾型的reachBottom參數,在onLoad事件里參數為false,只加載第一頁;在onreachBottom事件里參數為true,要加載新的數據.向后端請求的方法為util.request,詳情可以看我上一個博客,貼個鏈接.這里的參數比較多,貼圖

http://www.fzitv.net/article/265256.htm將從后端請求的數據保存在supplyList中,并且通過setData方法寫入data中的supplyList中,將總頁數也保存在totalPages中,最后每獲取一整頁的數據之后將頁數加一,為下頁調用數據做準備.方法的整體代碼如下.

getSupplyList(reachBottom) {//參數表示是否為觸底下拉加載數據
    wx.showLoading({
      title: '加載中...',
    });
    let that = this;//在回調甘薯里,this有時候不能直接用,防止出bug所初始化一個that
    util.request(api.SupplyList, {//發(fā)送請求
      type: that.data.type,
      page: that.data.page,
      limit: that.data.limit,
      searchValue: that.data.searchValue//請求的四個參數
    }).then(function (res) {
      console.log(that.data.page);
      if (res.errno === 0) {//為0請求成功
        let supplyList = res.data.list.map(item => {
          item.dueTime = util.formatTime2(new Date(item.dueTime), "Y/M/D");//設置日期格式
          item.herbListImage && (item.herbListImage01 = item.herbListImage.split(',')[0])//設置獲取的圖片列表
          item.companyLogo = item.companyLogo || item.avatar;
          item.companyName = item.companyName || item.nickname;
          return item;//將這一條數據返回supplyList并保存
        });
        //觸底加載新數據并保留老數據
        if (reachBottom) {
          supplyList = [...that.data.supplyList, ...supplyList]//將新數據加入老數據中
        }
        that.setData({//將獲取的值賦值給data中的數組和總頁數
          supplyList: supplyList,
          totalPages: res.data.pages
        });
        that.data.page++//所有操作完成后頁數加一
        wx.hideLoading();
      }
    }).finally(() => {
      wx.hideLoading();
    });
  },

寫好getSupplyList方法之后,可以在onReachBottom觸底加載事件里面進行調用,調用的時候要判斷當前頁是否小于總頁數,小于的話進行調用,并且在每次調用后將當前頁數加一,代碼如下.

  onReachBottom() {//觸底加載事件
    if (this.data.totalPages > this.data.page) {//判斷當前也是否小于總頁數
      this.setData({
        page: this.data.page + 1//當前頁加一
      });
    } else {
      return false;
    }
    this.getSupplyList(true);//調用方法
  },

這樣這個觸底加載的功能就已經實現了. 如圖

三 遇到的一些問題

在實際開發(fā)這個過程當中,也遇到了一些問題,可以和大家分享一下,互相學習

在測試的時候,第一次分頁加載實現了,后面都沒有實現,在排查之后,發(fā)現經過第一次的分頁之后this.data.page即當前頁面變?yōu)榱?,在刷新頁面之后并沒有重新初始化為1,所以要在頁面每次關閉之后將頁面重新賦值為1,如圖.

在寫getSupplyList方法時,在data里面定義好的變量使用的時候總是顯示 undefined 未定義,在csdn上查到了原因,是因為在js的一些函數或者回調函數中,直接用this可能是無法訪問的,需要重新定義一個變量代替this,解決方法如下,用that代替this來使用data中的變量.

如果要實現想動圖里面那樣的無感觸底加載的功能,只需要在對應的json文件里面加入"onReachBottomDistance": 300,可以在離底部300的時候就開始執(zhí)行觸底加載事件.

總結

到此這篇關于微信小程序使用onreachBottom實現頁面觸底加載及分頁效果的文章就介紹到這了,更多相關小程序頁面觸底加載及分頁內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • JS DOMReady事件的六種實現方法總結

    JS DOMReady事件的六種實現方法總結

    下面小編就為大家?guī)硪黄狫S DOMReady事件的六種實現方法總結。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-11-11
  • 淺析showModalDialog數據緩存問題(用禁止瀏覽器緩存解決)

    淺析showModalDialog數據緩存問題(用禁止瀏覽器緩存解決)

    在使用showModalDialog彈出窗口時,顯示的數據是上次修改前的數據,這是因為默認情況下頁面保存了緩存,所以顯示的數據并不是修改后的情況
    2013-07-07
  • JavaScript分秒倒計時器實現方法

    JavaScript分秒倒計時器實現方法

    這篇文章主要介紹了JavaScript分秒倒計時器實現方法,可實現按照毫秒倒計時的效果,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-02-02
  • JS彈出窗口代碼大全(詳細整理)

    JS彈出窗口代碼大全(詳細整理)

    如何利用網頁彈出各種形式的窗口,我想大家大多都是知道些的,但那種多種多樣的彈出式窗口是怎么搞出來的,平時利用業(yè)余時間整理了一些,需要的朋友可以參考一下
    2012-12-12
  • el表達式 寫入bootstrap表格數據頁面的實例代碼

    el表達式 寫入bootstrap表格數據頁面的實例代碼

    這篇文章主要介紹了el表達式 寫入bootstrap表格數據頁面的實例代碼,非常不錯,具有參考借鑒價值,需要的的朋友參考下吧
    2017-01-01
  • 網頁中JS函數自動執(zhí)行常用三種方法

    網頁中JS函數自動執(zhí)行常用三種方法

    這篇文章主要為大家詳細介紹了網頁中JS函數自動執(zhí)行常用三種方法,感興趣的小伙伴們可以參考一下
    2016-03-03
  • BootStrapValidator校驗方式

    BootStrapValidator校驗方式

    做輸入校驗的時候如果你前端框架用的是bootstrap的話,首推bootstrapValidator校驗方式,下面通過本文給大家分享下校驗流程,一起看看吧
    2016-12-12
  • js替代copy(示例代碼)

    js替代copy(示例代碼)

    這篇文章主要是對js替代copy的示例代碼進行了介紹,需要的朋友可以過來參考下,希望對大家有所幫助
    2013-11-11
  • js動態(tài)移動滾動條至底部示例代碼

    js動態(tài)移動滾動條至底部示例代碼

    這篇文章主要介紹了使用js動態(tài)移動滾動條至底部,需要的朋友可以參考下
    2014-04-04
  • Lab.js初次使用筆記

    Lab.js初次使用筆記

    這篇文章主要介紹了Lab.js初次使用筆記,本文對比了普通動態(tài)加載JS文件的技術和使用Lab.js加載JS文件的技術,并給出了Lab.js加載示例,需要的朋友可以參考下
    2015-02-02

最新評論

德昌县| 汶川县| 湄潭县| 高唐县| 淮南市| 平利县| 塔河县| 安图县| 凯里市| 兰西县| 厦门市| 广水市| 都江堰市| 华坪县| 乌审旗| 右玉县| 阳高县| 安吉县| 兖州市| 芜湖市| 仙游县| 南江县| 普宁市| 湖北省| 疏勒县| 丽江市| 岫岩| 云南省| 枣阳市| 镇雄县| 定安县| 闻喜县| 旺苍县| 弥勒县| 通榆县| 北碚区| 鄯善县| 新干县| 德州市| 和硕县| 平武县|