91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何解決el-select數據過多懶加載問題

發布時間:2021-08-02 14:50:49 來源:億速云 閱讀:286 作者:小新 欄目:web開發

這篇文章主要介紹如何解決el-select數據過多懶加載問題,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

el-select數據過多處理方式

在日常項目中el-select組件的使用頻率是非常之高的. 當數據過多時渲染時間非常長, 這里提供幾個處理方式.

遠程搜索

組件提供了遠程搜索方式, 也就是按照你輸入的結果匹配選項.

下拉懶加載loadMore

下拉懶加載, 當select滾動到底部時, 你再去請求一部分數據, 加入到當前數據中.

某組件中:

<template>
  <el-select
    v-model="value"
    placeholder="請選擇"
    filterable
    multiple
    v-el-select-loadmore="loadmore"
  >
    <el-option
      v-for="item in options"
      :key="item.id"
      :label="item.label"
      :value="item.id">
    </el-option>
  </el-select>
</template>
 
export default {
  directives: {
    'el-select-loadmore': {
      bind(el, binding) {
        // 獲取element-ui定義好的scroll盒子
        const SELECTWRAP_DOM = el.querySelector('.el-select-dropdown .el-select-dropdown__wrap');
        SELECTWRAP_DOM.addEventListener('scroll', function () {
          /**
          * scrollHeight 獲取元素內容高度(只讀)
          * scrollTop 獲取或者設置元素的偏移值,常用于, 計算滾動條的位置, 當一個元素的容器沒有產生垂直方向的滾動條, 那它的scrollTop的值默認為0.
          * clientHeight 讀取元素的可見高度(只讀)
          * 如果元素滾動到底, 下面等式返回true, 沒有則返回false:
          * ele.scrollHeight - ele.scrollTop === ele.clientHeight;
          */
          const condition = this.scrollHeight - this.scrollTop <= this.clientHeight;
          if (condition) {
            binding.value();
          }
        });
      }
    }
  },
  data() {
    return {
      value: '',
      options: [],
      formData: {
        pageIndex: 1,
        pageSize: 20,
      }
    };
  },
  mounted() {
    this.getList(this.formData);
  },
  methods: {
    loadmore() {
      this.formData.pageIndex++;
      this.getList(this.formData);
    },
    getList(formData) {
      // 這里是接口請求數據, 帶分頁條件
      const _res = [1, 2, 3]; // 請求得到的數據
      this.options = [...this.options, ..._res];
    }
  }
};

這樣就做到了滾動懶加載, 具體細節在應用時修改.

問題

這樣渲染問題解決了, 隨之會出現一個問題, 就是當你的value為選中的數據后, 分頁數大的數據.

當頁數小時, options數據中沒有當前value的那一個, value就會顯示為得到的id.

當你選中后你要保存下來當前的id以及lable, 下次過來時, 帶入當前組件, 手動放在options中,這樣就解決了這個問題.

以上是“如何解決el-select數據過多懶加載問題”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

绥芬河市| 肃南| 秀山| 嘉鱼县| 苍溪县| 临武县| 蒙阴县| 古交市| 额济纳旗| 奎屯市| 林周县| 信宜市| 密山市| 西安市| 绥滨县| 罗山县| 庆阳市| 乌海市| 韶关市| 简阳市| 北海市| 息烽县| 五寨县| 射阳县| 齐河县| 常熟市| 朝阳县| 古交市| 彰化市| 泽库县| 湖南省| 新蔡县| 武安市| 莫力| 岑溪市| 新巴尔虎右旗| 乡宁县| 柘城县| 融水| 满洲里市| 连州市|