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

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; // 顯示加載中的標識
     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)一個無限加載列表功能,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關文章

  • 如何解決Element-ui的el-table固定列后出現(xiàn)的表格錯位問題

    如何解決Element-ui的el-table固定列后出現(xiàn)的表格錯位問題

    這篇文章主要介紹了如何解決Element-ui的el-table固定列后出現(xiàn)的表格錯位問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-09-09
  • Vue嵌套路由的各種用法詳解

    Vue嵌套路由的各種用法詳解

    在 Vue 中,嵌套路由和 Element Plus 的 Menu 組件是構(gòu)建復雜單頁面應用(SPA)時的常用組合,通過嵌套路由,可以實現(xiàn)多級頁面結(jié)構(gòu),以下是結(jié)合 Vue 嵌套路由和 Element Plus Menu 的各種用法和場景的詳細介紹,需要的朋友可以參考下
    2025-01-01
  • vue路由切換之淡入淡出的簡單實現(xiàn)

    vue路由切換之淡入淡出的簡單實現(xiàn)

    今天小編就為大家分享一篇vue路由切換之淡入淡出的簡單實現(xiàn),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-10-10
  • vue引入組件的幾種方法代碼示例

    vue引入組件的幾種方法代碼示例

    vue的一個強大功能就是組件化開發(fā),下面這篇文章主要給大家介紹了關于vue引入組件的幾種方法,文中給出了詳細的代碼及圖文介紹,需要的朋友可以參考下
    2024-04-04
  • Vue?2中實現(xiàn)CustomRef方式防抖節(jié)流

    Vue?2中實現(xiàn)CustomRef方式防抖節(jié)流

    這篇文章主要為大家介紹了Vue?2中實現(xiàn)CustomRef方式防抖節(jié)流示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-02-02
  • Vue設置頁面全屏實例代碼

    Vue設置頁面全屏實例代碼

    文章介紹了如何在Vue中設置頁面全屏,包括下載插件、全屏、退出全屏、全屏切換等操作,同時,還分享了在若依框架中實現(xiàn)主頁面內(nèi)容全屏的方法,包括配置全局變量和在布局文件中進行設置
    2025-02-02
  • vue動態(tài)添加背景圖簡單示例

    vue動態(tài)添加背景圖簡單示例

    這篇文章主要給大家介紹了關于vue動態(tài)添加背景圖的相關資料,在一些場景下我們需要使用戶可以進行自定義背景圖片,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-07-07
  • vue3 setup中defineEmits與defineProps的使用案例詳解

    vue3 setup中defineEmits與defineProps的使用案例詳解

    在父組件中定義String、Number、Boolean、Array、Object、Date、Function、Symbol這些類型的數(shù)據(jù),使用defineEmits會返回一個方法,使用一個變量emits(變量名隨意)去接收,本文給大家介紹vue3 setup中defineEmits與defineProps的使用案例,感興趣的朋友一起看看吧
    2023-10-10
  • 詳解Vue 如何監(jiān)聽Array的變化

    詳解Vue 如何監(jiān)聽Array的變化

    這篇文章主要介紹了詳解Vue 如何監(jiān)聽Array的變化,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-06-06
  • vue 使用post/get 下載導出文件操作

    vue 使用post/get 下載導出文件操作

    這篇文章主要介紹了vue 使用post/get 下載導出文件操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-08-08

最新評論

大方县| 太谷县| 安丘市| 长白| 平谷区| 科技| 礼泉县| 临夏市| 泸州市| 景德镇市| 黎城县| 察雅县| 镇原县| 中山市| 依安县| 红桥区| 梧州市| 大城县| 舞钢市| 新巴尔虎右旗| 禹城市| 高尔夫| 元阳县| 永康市| 乌鲁木齐县| 林西县| 都昌县| 视频| 盐城市| 荥阳市| 潮安县| 叶城县| 基隆市| 通化县| 朝阳县| 怀宁县| 武义县| 喀喇| 九龙坡区| 汉中市| 保德县|