欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Vue移動端下拉加載更多數(shù)據(jù)onload實現(xiàn)方法淺析

 更新時間:2023年02月15日 15:04:59   作者:搬磚IT員  
這篇文章主要介紹了Vue移動端下拉加載更多數(shù)據(jù)onload實現(xiàn)方法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

思想:van-list組件負責UI層監(jiān)測觸底, 執(zhí)行onload函數(shù), page++, 請求下頁數(shù)據(jù), 和現(xiàn)在數(shù)據(jù)合并顯示更多, 設置loading為false, 確保下次觸底還能執(zhí)行onLoad

vant是一個可用于移動端的組件庫,搭建頁面框架,需要使用到vant組件,添加依賴yarn add vant@2.12.15至vue2項目內(nèi),此處用到van-list組件。

vant中的組件van-list來動態(tài)渲染數(shù)據(jù),下拉加載首先需要綁定變量loading(加載狀態(tài))、屬性finished(是否全部加載完成),finished-text全部加載完成顯示的文字

 <van-list
     v-model="loading"
     :finished="finished"
     finished-text="沒有更多了"
     @load="onLoad"
  >
       正常的遍歷searchResult內(nèi)數(shù)據(jù) 渲染至頁面內(nèi)容
 </van-list>      

數(shù)據(jù):注意要有當前頁頁碼page配合實現(xiàn)

data() {
    return {
      searchResult: [],  //搜索到的總的數(shù)據(jù),用此數(shù)組內(nèi)數(shù)據(jù)來遍歷展示
      loading: false,  //加載中 (狀態(tài)) - 只有為false, 才能觸底后自動觸發(fā)onload方法
      finished: false,   // 未加載全部 (如果設置為true, 底部就不會再次執(zhí)行onload, 代表全部加載完成)
      page: 1,  // 當前搜索結(jié)果的頁碼
    };
  },  

以上為準備的數(shù)據(jù),

onload 下拉刷新加載更多數(shù)據(jù) (觸底后加載下一頁數(shù)據(jù))

思想:

1、監(jiān)測頁面觸底執(zhí)行onload事件 (onload事件:頁面內(nèi)所有元素包括圖片等都加載完成后執(zhí)行)

2、配合后臺接口,傳遞下一頁的標識

3、拿到下一頁數(shù)據(jù)后追加到當前數(shù)組末尾即可

<script>
export default {
  methods: {
    // 此為js代碼,監(jiān)聽事件,發(fā)送異步操作的數(shù)據(jù)請求
    async btn2() {
      this.loading = false // 優(yōu)化bug,防止出現(xiàn)首次多加載一次的情況
      this.finished = false // 加載未結(jié)束
      this.page = 1 // 走完函數(shù),就將當前頁恢復至1,防止后面累加,導致點擊別的篩選條件時無效
      // 異步發(fā)送請求獲取數(shù)據(jù)賦值給data內(nèi)變量
      const { data } = await getSearchResult({
        keywords: this.value, // 此為接口需要的參數(shù)
        limit: 20
      })
      this.searchResult = data.result.songs
    },
    async onLoad() { // 觸底事件(要加載下一頁的數(shù)據(jù)), 內(nèi)部會自動把loading改為true,為true后才會執(zhí)行x
      this.page++ // 加載至底部就將頁面值+1
      const { data } = await getSearchResult({
        keywords: this.value,
        limit: 20,
        offset: (this.page - 1) * 20 // 傳參固定公式,頁面偏移量即一頁多少數(shù)據(jù)
      })
      if (data.result.songs === undefined) { // 下拉刷新后此次檢索不到數(shù)據(jù)了,表示已經(jīng)將所有數(shù)據(jù)加載完了
        return (this.finished = true) // finished賦值為true,表示 不再去進行加載了,結(jié)束狀態(tài)
      }
      this.searchResult.push(...data.result.songs) // 將每次下拉刷新檢索到的數(shù)據(jù)加入 展示的數(shù)據(jù)列表
      this.loading = false // 切記,本次加載完更多數(shù)據(jù)后,一定要把loading改成false, 保證下一次還能觸發(fā)onload方法
    }
  }
}
</script>
 

第一次發(fā)送getSearchResult數(shù)據(jù)請求為加載第一頁數(shù)據(jù),限制獲取數(shù)據(jù)數(shù)量limit為20條,第二次getSearchResult則是下拉到底,再去獲取20條數(shù)據(jù),再添加到第一次保存數(shù)據(jù)的數(shù)組里,這樣就有40條數(shù)據(jù)同時渲染在了頁面上,以后每下拉一次,就是此種操作,從請求里獲取不到數(shù)據(jù)了,將finished賦值為true下拉加載事件就會停止

到此這篇關于Vue移動端下拉加載更多數(shù)據(jù)onload實現(xiàn)方法淺析的文章就介紹到這了,更多相關Vue下拉加載 內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Vue前端整合Element?Ui的教程詳解

    Vue前端整合Element?Ui的教程詳解

    這篇文章主要介紹了Vue前端整合Element?Ui,本節(jié)內(nèi)容服務于SpringBoot?+?Vue?搭建?JavaWeb?增刪改查項目,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-07-07
  • vue用addRoutes實現(xiàn)動態(tài)路由的示例

    vue用addRoutes實現(xiàn)動態(tài)路由的示例

    本篇文章主要介紹了vue用addRoutes實現(xiàn)動態(tài)路由的示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-09-09
  • vue中監(jiān)聽input框獲取焦點及失去焦點的問題

    vue中監(jiān)聽input框獲取焦點及失去焦點的問題

    這篇文章主要介紹了vue中監(jiān)聽input框獲取焦點,失去焦點的問題,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-07-07
  • 解決vue3項目打包發(fā)布到服務器后訪問頁面顯示空白問題

    解決vue3項目打包發(fā)布到服務器后訪問頁面顯示空白問題

    這篇文章主要介紹了解決vue3項目打包發(fā)布到服務器后訪問頁面顯示空白問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • Vue自定義指令實現(xiàn)彈窗拖拽四邊拉伸及對角線拉伸效果

    Vue自定義指令實現(xiàn)彈窗拖拽四邊拉伸及對角線拉伸效果

    小編最近在做一個vue前端項目,需要實現(xiàn)彈窗的拖拽,四邊拉伸及對角線拉伸,以及彈窗邊界處理功能,本文通過實例代碼給大家分享我的實現(xiàn)過程及遇到問題解決方法,感興趣的朋友一起看看吧
    2021-08-08
  • ElementUI如何修改Dialog的標題樣式

    ElementUI如何修改Dialog的標題樣式

    這篇文章主要介紹了ElementUI如何修改Dialog的標題樣式問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • vue+uniapp實現(xiàn)生成二維碼

    vue+uniapp實現(xiàn)生成二維碼

    這篇文章主要為大家詳細介紹了vue結(jié)合uniapp實現(xiàn)生成二維碼的相關知識,文中的示例代碼講解詳細,具有一定的借鑒價值,感興趣的小伙伴可以學習一下
    2023-12-12
  • vue+elementUI組件tree如何實現(xiàn)單選加條件禁用

    vue+elementUI組件tree如何實現(xiàn)單選加條件禁用

    這篇文章主要介紹了vue+elementUI組件tree如何實現(xiàn)單選加條件禁用,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • Vue3圖片上傳報錯:Required?part?‘file‘?is?not?present.的原因及解決方法

    Vue3圖片上傳報錯:Required?part?‘file‘?is?not?present.的原因及解決方法

    這篇文章主要介紹了Vue3圖片上傳報錯:Required?part?‘file‘?is?not?present.的原因及解決方法,文中通過代碼示例講解的非常詳細,對大家解決問題有一定的幫助,需要的朋友可以參考下
    2024-09-09
  • vue中el-tree?橫向滾動條的實現(xiàn)

    vue中el-tree?橫向滾動條的實現(xiàn)

    本文詳細介紹了在Vue框架中使用el-tree組件創(chuàng)建橫向滾動條的方法,通過代碼示例和步驟說明,幫助開發(fā)者理解和實現(xiàn)橫向滾動功能,感興趣的可以了解一下
    2024-09-09

最新評論