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

vue elementUI table表格數(shù)據(jù) 滾動懶加載的實(shí)現(xiàn)方法

 更新時間:2019年04月04日 08:29:16   作者:一舧  
這篇文章主要介紹了vue elementUI table表格數(shù)據(jù)滾動懶加載的實(shí)現(xiàn)方法,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下

在項(xiàng)目中遇到了一個性能問題

vue+elementUI table表格展示數(shù)據(jù),當(dāng)數(shù)據(jù)很多的時候,不能一頁顯示完,同時一次請求數(shù)據(jù)量太大,會增加網(wǎng)頁渲染的時間,影響體驗(yàn),

這個時候常常有兩種方法處理,

1、分頁,如下

 

2、如果我不想分頁,又想在一頁顯示全部數(shù)據(jù)呢?這個時候其實(shí)就可以用數(shù)據(jù)懶加載了

如下一開始表格只顯示31行數(shù)據(jù)


當(dāng)將滾動條拉到低的時候,就會再加載31條數(shù)據(jù),如果剩下的數(shù)據(jù)不足31,那就加載剩下的

 

根據(jù)項(xiàng)目需求,這需要一頁可以看到全部數(shù)據(jù),所以我選擇了第二中方式

那么第二種方式要怎么去實(shí)現(xiàn)呢?

在了解它的原理前,你需要分清楚三個屬性:

scrollHeight:指元素的總高度,包含滾動條中的內(nèi)容。只讀屬性。不帶px單位。就是下圖中,54條數(shù)據(jù)的高度,但是因?yàn)橛袧L動條,所以屏幕看不到這么高

scrollTop:當(dāng)元素出現(xiàn)滾動條時,向下拖動滾動條,內(nèi)容向上滾動的距離??勺x可寫屬性。不帶px單位。如果該元素沒有滾動條,則scrollTop的值為0,該值只能是正值。就是下圖中紅色框的高度

clientHeight:元素客戶區(qū)的大小,指的是元素內(nèi)容及其邊框所占據(jù)的空間大小,實(shí)際上就是可視區(qū)域的大小。就是下圖紅色箭頭的高度

 

那如何判斷滾動條滾到底部了呢?

scrollHeight-scrollTop-clientHeight=0,這個時候可以就是滾動條滾到底部的時候了。

在第一次請求數(shù)據(jù)的時候,先設(shè)置一個變量來記錄請求次數(shù)(其實(shí)后臺也是做分頁的處理)

this.currentPage = 1,
$this = this;
this.$axios.fun().then(res=>{
   $this.totalPage = res.totalPage; //這里需要知道總頁數(shù)
   
   $this.tableData = res.data;//表格數(shù)據(jù)
})

監(jiān)聽表格dom對象的滾動事件

let dom = document.querySelector(targetDom);
  dom.addEventListener("scroll", function() {
    const scrollDistance =dom.scrollHeight - dom.scrollTop - dom.clientHeight;
    if(scrollDistance <=0){//等于0證明已經(jīng)到底,可以請求接口
      if($this.currentPage < $this.totalPage){//當(dāng)前頁數(shù)小于總頁數(shù)就請求
        $this.currentPage++;//當(dāng)前頁數(shù)自增
        
        //請求接口的代碼
        $this.$axios.fun().then(res=>{
        
          $this.tableData = $this.tableData.concat(res.data)//將請求回來的數(shù)據(jù)和當(dāng)前展示的數(shù)據(jù)合并在一起
        })
        
      }
    }
  })

好了,表格滾動下拉懶加載數(shù)據(jù)就是這樣實(shí)現(xiàn)的,希望對大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會及時回復(fù)大家的!

相關(guān)文章

  • vue項(xiàng)目使用cmd運(yùn)行方式

    vue項(xiàng)目使用cmd運(yùn)行方式

    在開發(fā)過程中,啟動項(xiàng)目是必不可少的一步,本文介紹了兩種啟動項(xiàng)目的方法,第一種方法是通過命令提示符(cmd)進(jìn)入項(xiàng)目目錄,然后輸入npm run serve來啟動項(xiàng)目,第二種方法是直接在項(xiàng)目目錄下打開命令提示符(cmd),輸入npm run serve即可啟動項(xiàng)目
    2024-10-10
  • vuex中的四個map方法的使用小結(jié)

    vuex中的四個map方法的使用小結(jié)

    vuex里面有四個map方法,他們分別可以針對不同的元素進(jìn)行不同的代碼生成,本文就來詳細(xì)的介紹一下vuex中的四個map方法,具有一定的參考價值,感興趣的可以了解一下
    2023-05-05
  • vue基于Element構(gòu)建自定義樹的示例代碼

    vue基于Element構(gòu)建自定義樹的示例代碼

    本篇文章主要介紹了vue基于Element構(gòu)建自定義樹的示例代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-09-09
  • vue-cli4.0多環(huán)境配置變量與模式詳解

    vue-cli4.0多環(huán)境配置變量與模式詳解

    這篇文章主要介紹了vue-cli4.0多環(huán)境配置變量與模式詳解,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-12-12
  • 使用vue.js編寫藍(lán)色拼圖小游戲

    使用vue.js編寫藍(lán)色拼圖小游戲

    之前在網(wǎng)上看到《藍(lán)色拼圖》這款小游戲,作者是用jquery寫的。下面通過本文給大家分享基于vue.js編寫藍(lán)色拼圖小游戲,一起看看實(shí)現(xiàn)代碼吧
    2017-03-03
  • 解決vue路由組件vue-router實(shí)例被復(fù)用問題

    解決vue路由組件vue-router實(shí)例被復(fù)用問題

    這篇文章介紹了解決vue路由組件vue-router實(shí)例被復(fù)用的問題,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • 如何在Vue3和Vite項(xiàng)目中用SQLite數(shù)據(jù)庫進(jìn)行數(shù)據(jù)存儲

    如何在Vue3和Vite項(xiàng)目中用SQLite數(shù)據(jù)庫進(jìn)行數(shù)據(jù)存儲

    SQLite是一種嵌入式關(guān)系型數(shù)據(jù)庫管理系統(tǒng),是一個零配置、無服務(wù)器的、自給自足的、事務(wù)性的SQL數(shù)據(jù)庫引擎,這篇文章主要給大家介紹了關(guān)于如何在Vue3和Vite項(xiàng)目中用SQLite數(shù)據(jù)庫進(jìn)行數(shù)據(jù)存儲的相關(guān)資料,需要的朋友可以參考下
    2024-03-03
  • Vue.js render方法使用詳解

    Vue.js render方法使用詳解

    這篇文章主要為大家詳細(xì)介紹了Vue.js render方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-04-04
  • Vue中使用v-print打印出現(xiàn)空白頁問題及解決

    Vue中使用v-print打印出現(xiàn)空白頁問題及解決

    這篇文章主要介紹了Vue中使用v-print打印出現(xiàn)空白頁問題及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • vue實(shí)現(xiàn)移動端可拖拽式icon圖標(biāo)

    vue實(shí)現(xiàn)移動端可拖拽式icon圖標(biāo)

    這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)移動端可拖拽式icon圖標(biāo),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03

最新評論