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

Vue實現(xiàn)一個無限加載列表功能

 更新時間:2018年11月13日 08:48:06   作者:wenr  
這篇文章主要介紹了Vue實現(xiàn)一個無限加載列表功能,需要的朋友可以參考下

一個需要判斷的地方就是加載中再次觸發(fā)滾動的時候,不要獲取數(shù)據(jù)。

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>列表無限加載</title>
 <style>
  * {
   margin: 0;
   padding: 0;
  }
  li {
   height: 50px;
   border-bottom: 1px solid #c7c7c7;
   list-style: none;
   line-height: 50px;
   padding-left: 30px;
  }
 </style>
</head>
<body>
 <div id="unlimitedList">
  <ul>
   <li v-for="item in list">{{ item }}</li>
   <li :style="{display: loading ? 'initial' : 'none'}">Loading......</div>
  </ul>
 </div>
 <script src="https://cdn.jsdelivr.net/npm/vue@2.5.17/dist/vue.js"></script>
 <script>
  function fetch(from, size = 20) { // 模擬后臺獲取數(shù)據(jù)
   console.log('獲取數(shù)據(jù) 傳入: ', { from, size });
   let data = [];
   let total = 98;
   size = Math.min(size, total - from + 1);
   for (let i = 0; i < size; i++) {
    data.push(`列表項${from + i}`);
   }
   let ret = { data, total };
   return new Promise(function (resolve, reject) {
    setTimeout(() => {
     console.log('獲取數(shù)據(jù) 返回: ', ret);
     resolve(ret);
    }, 500);
   })
  }
  new Vue({
   el: '#unlimitedList',
   data: {
    list: [],
    loading: true,  // 數(shù)據(jù)加載中
    allLoaded: false // 數(shù)據(jù)已經(jīng)全部加載
   },
   methods: {
    getData() {
     this.loading = true; // 顯示加載中的標(biāo)識
     fetch(this.list.length + 1).then(res => {
      this.list.splice(this.list.length, 0, ...res.data); // 將新獲取到的數(shù)據(jù)連接到 this.list (vue 能檢測到 splice() 函數(shù)
      this.loading = false; // 加載結(jié)束 取消加載中顯示
      if (this.list.length === res.total) {
       this.allLoaded = true;
      }
     })
    },
    onScroll(e) {
     if (this.loading || this.allLoaded) return;
     let top = document.documentElement.scrollTop || document.body.scrollTop; // 滾動條在Y軸上的滾動距離
     let vh = document.compatMode == 'CSS1Compat' ? document.documentElement.clientHeight : document.body.clientHeight; // 瀏覽器視口的高度
     let height = Math.max(document.body.scrollHeight, document.documentElement.scrollHeight); // 文檔的總高度
     if (top + vh >= height) { // 滾動到底部
      this.getData(); // 如果已經(jīng)滾到底了 獲取數(shù)據(jù)
     }
    }
   },
   created() {
    this.getData();
    window.addEventListener('scroll', this.onScroll);
   },
   destroyed () {
    window.removeEventListener('scroll', this.onScroll);
   }
  })
 </script>
</body>
</html>

總結(jié)

以上所述是小編給大家介紹的Vue實現(xiàn)一個無限加載列表功能,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

  • 60個vue常用工具類

    60個vue常用工具類

    這篇文章主要介紹了60個vue常用工具類,包括vue郵箱驗證,vue瀏覽器識別,vue操作系統(tǒng)識別,vue html過濾,vue身份證校驗等需要的朋友可以參考下
    2023-01-01
  • vue實現(xiàn)簡潔文件上傳進(jìn)度條功能

    vue實現(xiàn)簡潔文件上傳進(jìn)度條功能

    這篇文章主要介紹了vue實現(xiàn)簡潔文件上傳進(jìn)度條功能,實現(xiàn)原理是通過performance.now()獲取動畫的時間戳,用于創(chuàng)建流暢的動畫,結(jié)合示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-06-06
  • VUE中的無限循環(huán)代碼解析

    VUE中的無限循環(huán)代碼解析

    本文通過實例代碼給大家介紹了vue中的無限循環(huán),代碼簡單易懂,非常不錯,具有參考借鑒價值,需要的朋友參考下吧
    2017-09-09
  • Unocss(原子化css)?使用及vue3?+?vite?+?ts講解

    Unocss(原子化css)?使用及vue3?+?vite?+?ts講解

    這篇文章主要介紹了Unocss(原子化css)使用vue3?+?vite?+?ts的方法,簡單介紹了Unocss使用及圖標(biāo)庫使用,通過實例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-11-11
  • vue組件之間的數(shù)據(jù)傳遞方法詳解

    vue組件之間的數(shù)據(jù)傳遞方法詳解

    這篇文章主要介紹了vue組件之間的數(shù)據(jù)傳遞方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • vue中使用webuploader做斷點續(xù)傳實現(xiàn)文件上傳功能

    vue中使用webuploader做斷點續(xù)傳實現(xiàn)文件上傳功能

    之前做的一個項目中,由于經(jīng)常上傳幾百兆的壓縮包,導(dǎo)致經(jīng)常上傳失敗,所以就找了webuploader插件做了斷點續(xù)傳,斷點續(xù)傳除了需要前端分片,也需要后臺去支持,所以做的時候做好對接協(xié)調(diào),所以本文就給大家詳細(xì)的介紹一下vue中如何使用webuploader做斷點續(xù)傳
    2023-07-07
  • Vue?Router的安裝使用方法總結(jié)

    Vue?Router的安裝使用方法總結(jié)

    在本文中,我們詳細(xì)講解了Vue路由的使用方法,我們首先安裝了Vue?Router,然后創(chuàng)建了一個Vue?Router實例,并配置了路由,感興趣的朋友一起看看吧
    2023-11-11
  • Vue運用transition實現(xiàn)過渡動畫

    Vue運用transition實現(xiàn)過渡動畫

    vue的過渡動畫,主要是transition標(biāo)簽的使用,配合css動畫實現(xiàn)的。接下來通過本文給大家分享Vue運用transition實現(xiàn)過渡動畫效果,感興趣的朋友一起看看吧
    2019-05-05
  • 關(guān)于Pinia狀態(tài)管理解讀

    關(guān)于Pinia狀態(tài)管理解讀

    這篇文章主要介紹了Pinia狀態(tài)管理解讀,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • vuex入門最詳細(xì)整理

    vuex入門最詳細(xì)整理

    在本篇文章里小編給大家分享的是關(guān)于vuex入門最詳細(xì)整理的相關(guān)內(nèi)容,需要的朋友們參考下。
    2020-03-03

最新評論