真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

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

在項目中遇到了一個性能問題

站在用戶的角度思考問題,與客戶深入溝通,找到白河網(wǎng)站設(shè)計與白河網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設(shè)計與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:成都網(wǎng)站設(shè)計、成都做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣、申請域名網(wǎng)站空間、企業(yè)郵箱。業(yè)務(wù)覆蓋白河地區(qū)。

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

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

1、分頁,如下

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

在第一次請求數(shù)據(jù)的時候,先設(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ù)就是這樣實現(xiàn)的,希望對大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會及時回復(fù)大家的!


網(wǎng)頁題目:vueelementUItable表格數(shù)據(jù)滾動懶加載的實現(xiàn)方法
文章分享:http://weahome.cn/article/jdisgj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部