国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

el-select數據過多懶加載(loadmore)

leoperfect / 1522人閱讀

摘要:數據過多處理方式在日常項目中組件的使用頻率是非常之高的當數據過多時渲染時間非常長這里提供幾個處理方式遠程搜索組件提供了遠程搜索方式也就是按照你輸入的結果匹配選項官網提供了參考示例這里不加贅述下拉懶加載下拉懶加載當滾動到底部時你再去請求一

el-select數據過多處理方式

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

遠程搜索

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

官網提供了參考示例; 這里不加贅述.

下拉懶加載loadMore

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

某組件中:



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中,
這樣就解決了這個問題.

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/100837.html

相關文章

  • el-select數據過多加載(loadmore)

    摘要:數據過多處理方式在日常項目中組件的使用頻率是非常之高的當數據過多時渲染時間非常長這里提供幾個處理方式遠程搜索組件提供了遠程搜索方式也就是按照你輸入的結果匹配選項官網提供了參考示例這里不加贅述下拉懶加載下拉懶加載當滾動到底部時你再去請求一 el-select數據過多處理方式 在日常項目中el-select組件的使用頻率是非常之高的. 當數據過多時渲染時間非常長, 這里提供幾個處理方式. ...

    elliott_hu 評論0 收藏0
  • 【簡單好用,支持加載】 vue-waterfall2 基于Vue.js 瀑布流 組件

    摘要:不需知道元素寬高,可寬高自適應自定義程度高支持懶加載提供端滑動到底部觸發,端需要上拉觸發使用極為簡便適用于有問題歡迎提前端工程化算法注意需要與一起使用才會生效,否則會進行自適應寬度使用布局時,需先計算出自適應后的寬度再傳值使用了的 vue-waterfall2 1.不需知道元素寬高,可寬高自適應 2.自定義程度高 3.支持懶加載(lazy-src) 4.提供Event:loadmor...

    james 評論0 收藏0
  • vue 在移動端體驗上的優化解決方案

    摘要:去年年底自己搭了一個在移動端的開發框架,感覺體驗不是很好。路由懶加載首頁終于寫完了,以上這些就是我在移動端體驗優化的實戰。去年年底自己搭了一個vue在移動端的開發框架,感覺體驗不是很好。上個星期又要做移動端的項目了。所以我花了兩天時間對之前的那個開發框架做了以下優化 自定義vuex-plugins-loading 路由切換動畫 + keep alive 動態管理緩存組件 better-sc...

    godlong_X 評論0 收藏0
  • Javascript零碎之IntersectionObserver

    摘要:主要用于元素可見性的監聽,比傳統通過全局監聽事件去判斷可見性無論是性能還是便利性都要好得多。問題是這種通過監聽的方式很容易導致性能問題,或者多多少少會有些性能損失。 IntersectionObserver主要用于元素可見性的監聽,比傳統通過全局監聽scroll事件去判斷可見性無論是性能還是便利性都要好得多。因為api比較新,存在兼容性問題,好在已經有了兼容的polyfill.其基本介...

    張遷 評論0 收藏0
  • 數據驅動,快速開發組件(ElementUI篇)

    摘要:基于這種思路,那留給我們的只有兩步,組件設計和數據設計。關于組件的相關邏輯,可能要在文章里面一次性說清楚,還是需要費很大的精力,不過希望數據驅動的思想能夠讓之前沒有體會到這種開發樂趣的小伙伴們有到新的想法。 在日常開發中,我們肯定不止一次碰到重復的業務代碼,明明功能相似,但總沒思路去把它封裝成組件。關于封裝組件,希望這篇文章能帶給大家新的思路,去更高效的完成日常開發。(注:例子都是基于...

    enrecul101 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<