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

el-table渲染慢卡頓問題最優(yōu)解決方案

 更新時(shí)間:2022年08月18日 08:31:33   作者:web前端-孤單小王子  
本文主要介紹了el-table渲染慢卡頓問題最優(yōu)解決方案,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

1.如下圖,需要綁定兩個(gè)id,第一個(gè)id是需要浮動(dòng)的元素,加上scroll方法監(jiān)聽滑塊變化,第二個(gè)id是其子元素。

2.給eagleMapContainer設(shè)置overflow屬性和滑塊樣式,CSS參考如下

#eagleMapContainer{
   overflow-y: auto;
   margin-top: 10px;
   min-height: 150px;
   max-height: 600px;
 }
 #eagleMapContainer::-webkit-scrollbar {
    width: 6px; /*對(duì)垂直流動(dòng)條有效*/
    height: 6px;
  }
  #eagleMapContainer::-webkit-scrollbar-track{
    background-color:rgba(0,0,0,0.1);
  }
  #eagleMapContainer::-webkit-scrollbar-thumb{
    border-radius: 6px;
    background-color: rgba(0,0,0,0.2);
  }
  /*定義右下角匯合處的樣式*/
  #eagleMapContainer::-webkit-scrollbar-corner {
    background:rgba(0,0,0,0.2);
  }

3.在methods添加如下方法監(jiān)聽滑動(dòng)

  hanldeScroll(e) {
      // 獲取eagleMapContainer的真實(shí)高度
      const boxHeight = document.getElementById('eagleMapContainer').offsetHeight
      // 獲取table_list的真實(shí)高度(浮動(dòng)內(nèi)容的真實(shí)高度)
      const tableHeight = document.getElementById('table_list').offsetHeight
      // boxHeight和滑塊浮動(dòng)的高度相差小于50 && 不在加載中 && 不是最后一頁 
      if (tableHeight - (e.target.scrollTop + boxHeight) < 50 && !this.loading && this.listPage < (this.tableList.length / 300)) {
        // 第一次觸發(fā)時(shí),記錄滑塊高度
        // data里scrollTop,listPage默認(rèn)為0
        if (!this.scrollTop) {
          this.scrollTop = e.target.scrollTop
        }
        // 觸發(fā)下拉加載更多
        this.queryMoreStat(true, tableHeight, boxHeight)
      } else if (e.target.scrollTop === 0 && !this.loading) {
        // 如果滑塊上拉到頂部,則向上加載300條
        this.queryMoreStat(false, tableHeight, boxHeight)
      }
    }

4.在methods添加如下方法,滑塊置頂或觸底(實(shí)現(xiàn)原理:始終只渲染當(dāng)前300條和前后的300條,一共900條數(shù)據(jù))

    queryMoreStat(type, tableHeight, boxHeight) {
      this.loading = true
      // 觸底加載
      if (type) {
        this.listPage = this.listPage + 1
        const centerPage = this.listPage * 300
        const startPage = centerPage >= 300 ? centerPage - 300 : centerPage
        const endPage = centerPage + 600
        const newList = this.tableList.slice(startPage, endPage)
        if (this.listPage > 0) {
          const box = document.getElementById('eagleMapContainer')
          // 視圖跳到觸發(fā)的數(shù)據(jù),補(bǔ)回50的高度差值
          box.scrollTop = this.scrollTop + 50
        }
        this.list = newList
      } else {
        // 置頂加載
        if (this.listPage > 0) {
          this.listPage = this.listPage - 1
          const centerPage = this.listPage * 300
          const startPage = centerPage >= 300 ? centerPage - 300 : centerPage
          const endPage = centerPage + 600
          const newList = this.tableList.slice(startPage, endPage)
          if (this.listPage > 0) {
            const box = document.getElementById('eagleMapContainer')
            box.scrollTop = tableHeight - this.scrollTop - boxHeight
          }
          this.list = newList
        } else {
          this.list = this.tableList.slice(0, 300)
        }
      }
      this.$nextTick(() => {
        this.loading = false
      })
    }

到此這篇關(guān)于el-table渲染慢卡頓問題最優(yōu)解決方案的文章就介紹到這了,更多相關(guān)el-table渲染慢卡頓內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Angular和Vue雙向數(shù)據(jù)綁定的實(shí)現(xiàn)原理(重點(diǎn)是vue的雙向綁定)

    Angular和Vue雙向數(shù)據(jù)綁定的實(shí)現(xiàn)原理(重點(diǎn)是vue的雙向綁定)

    這篇文章主要介紹了Angular和Vue雙向數(shù)據(jù)綁定的實(shí)現(xiàn)原理(重點(diǎn)是vue的雙向綁定),非常不錯(cuò),具有參考借鑒價(jià)值,感興趣的朋友一起看看吧
    2016-11-11
  • antd Form組件表單在vue3中的使用方式

    antd Form組件表單在vue3中的使用方式

    這篇文章主要介紹了antd Form組件表單在vue3中的使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • vue實(shí)現(xiàn)瀏覽器桌面通知的示例代碼

    vue實(shí)現(xiàn)瀏覽器桌面通知的示例代碼

    本文主要介紹了vue實(shí)現(xiàn)瀏覽器桌面通知的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-01-01
  • Vue判斷字符串(或數(shù)組)中是否包含某個(gè)元素的多種方法

    Vue判斷字符串(或數(shù)組)中是否包含某個(gè)元素的多種方法

    在我們前端日常開發(fā)中經(jīng)常會(huì)遇到判斷一個(gè)字符串中是否包含某個(gè)元素的需求,下面這篇文章主要給大家介紹了關(guān)于Vue判斷字符串(或數(shù)組)中是否包含某個(gè)元素的多種方法,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-09-09
  • vue2中使用echarts實(shí)現(xiàn)中國地圖、在中國地圖上標(biāo)注坐標(biāo)散點(diǎn)圖的操作代碼

    vue2中使用echarts實(shí)現(xiàn)中國地圖、在中國地圖上標(biāo)注坐標(biāo)散點(diǎn)圖的操作代碼

    這篇文章主要介紹了vue2中使用echarts實(shí)現(xiàn)中國地圖、在中國地圖上標(biāo)注坐標(biāo)散點(diǎn)圖,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2024-05-05
  • vue中el-checkbox、el-switch綁定值問題詳解

    vue中el-checkbox、el-switch綁定值問題詳解

    這篇文章主要給大家介紹了關(guān)于vue中el-checkbox、el-switch綁定值問題的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用vue具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2024-01-01
  • Vue3異步數(shù)據(jù)加載組件suspense的使用方法

    Vue3異步數(shù)據(jù)加載組件suspense的使用方法

    前端開發(fā)中異步請(qǐng)求是非常常見的事情,比如遠(yuǎn)程讀取圖片,調(diào)用后端接口等等,這篇文章主要給大家介紹了關(guān)于Vue3異步數(shù)據(jù)加載組件suspense的使用方法,suspense中文含義是懸念的意思,需要的朋友可以參考下
    2021-08-08
  • 淺析Vue 生命周期

    淺析Vue 生命周期

    這篇文章主要介紹了Vue 生命周期的過程,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-06-06
  • vue基礎(chǔ)之事件v-onclick=

    vue基礎(chǔ)之事件v-onclick="函數(shù)"用法示例

    這篇文章主要介紹了vue基礎(chǔ)之事件v-onclick="函數(shù)"用法,結(jié)合實(shí)例形式分析了vue.js事件v-on:click="函數(shù)"的data數(shù)據(jù)添加、點(diǎn)擊響應(yīng)、以及留言本功能相關(guān)操作技巧,需要的朋友可以參考下
    2019-03-03
  • Pinia介紹及工作原理解析

    Pinia介紹及工作原理解析

    這篇文章主要為大家介紹了Pinia介紹及工作原理解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-03-03

最新評(píng)論

雅江县| 定陶县| 靖江市| 密云县| 吉安市| 蕲春县| 六盘水市| 正镶白旗| 抚顺县| 珲春市| 南城县| 灌阳县| 福泉市| 德江县| 台北县| 根河市| 任丘市| 绥棱县| 娱乐| 南皮县| 苏尼特右旗| 内丘县| 大厂| 织金县| 孟津县| 邳州市| 正定县| 山丹县| 洞口县| 依兰县| 三穗县| 福建省| 辽源市| 资中县| 随州市| 军事| 洪雅县| 方正县| 贵南县| 永登县| 丰都县|