摘要:數(shù)據(jù)過多處理方式在日常項(xiàng)目中組件的使用頻率是非常之高的當(dāng)數(shù)據(jù)過多時渲染時間非常長這里提供幾個處理方式遠(yuǎn)程搜索組件提供了遠(yuǎn)程搜索方式也就是按照你輸入的結(jié)果匹配選項(xiàng)官網(wǎng)提供了參考示例這里不加贅述下拉懶加載下拉懶加載當(dāng)滾動到底部時你再去請求一
el-select數(shù)據(jù)過多處理方式
在日常項(xiàng)目中el-select組件的使用頻率是非常之高的. 當(dāng)數(shù)據(jù)過多時渲染時間非常長, 這里提供幾個處理方式.
遠(yuǎn)程搜索組件提供了遠(yuǎn)程搜索方式, 也就是按照你輸入的結(jié)果匹配選項(xiàng).
官網(wǎng)提供了參考示例; 這里不加贅述.
下拉懶加載loadMore下拉懶加載, 當(dāng)select滾動到底部時, 你再去請求一部分?jǐn)?shù)據(jù), 加入到當(dāng)前數(shù)據(jù)中.
某組件中:
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 獲取元素內(nèi)容高度(只讀) * scrollTop 獲取或者設(shè)置元素的偏移值,常用于, 計算滾動條的位置, 當(dāng)一個元素的容器沒有產(chǎn)生垂直方向的滾動條, 那它的scrollTop的值默認(rèn)為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) { // 這里是接口請求數(shù)據(jù), 帶分頁條件 const _res = [1, 2, 3]; // 請求得到的數(shù)據(jù) this.options = [...this.options, ..._res]; } } };
這樣就做到了滾動懶加載, 具體細(xì)節(jié)在應(yīng)用時修改.
問題這樣渲染問題解決了, 隨之會出現(xiàn)一個問題, 就是當(dāng)你的value為選中的數(shù)據(jù)后, 分頁數(shù)大的數(shù)據(jù).
當(dāng)頁數(shù)小時, options數(shù)據(jù)中沒有當(dāng)前value的那一個, value就會顯示為得到的id.
當(dāng)你選中后你要保存下來當(dāng)前的id以及lable, 下次過來時, 帶入當(dāng)前組件, 手動放在options中,
這樣就解決了這個問題.
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/100837.html
摘要:數(shù)據(jù)過多處理方式在日常項(xiàng)目中組件的使用頻率是非常之高的當(dāng)數(shù)據(jù)過多時渲染時間非常長這里提供幾個處理方式遠(yuǎn)程搜索組件提供了遠(yuǎn)程搜索方式也就是按照你輸入的結(jié)果匹配選項(xiàng)官網(wǎng)提供了參考示例這里不加贅述下拉懶加載下拉懶加載當(dāng)滾動到底部時你再去請求一 el-select數(shù)據(jù)過多處理方式 在日常項(xiàng)目中el-select組件的使用頻率是非常之高的. 當(dāng)數(shù)據(jù)過多時渲染時間非常長, 這里提供幾個處理方式. ...
摘要:不需知道元素寬高,可寬高自適應(yīng)自定義程度高支持懶加載提供端滑動到底部觸發(fā),端需要上拉觸發(fā)使用極為簡便適用于有問題歡迎提前端工程化算法注意需要與一起使用才會生效,否則會進(jìn)行自適應(yīng)寬度使用布局時,需先計算出自適應(yīng)后的寬度再傳值使用了的 vue-waterfall2 1.不需知道元素寬高,可寬高自適應(yīng) 2.自定義程度高 3.支持懶加載(lazy-src) 4.提供Event:loadmor...
摘要:去年年底自己搭了一個在移動端的開發(fā)框架,感覺體驗(yàn)不是很好。路由懶加載首頁終于寫完了,以上這些就是我在移動端體驗(yàn)優(yōu)化的實(shí)戰(zhàn)。去年年底自己搭了一個vue在移動端的開發(fā)框架,感覺體驗(yàn)不是很好。上個星期又要做移動端的項(xiàng)目了。所以我花了兩天時間對之前的那個開發(fā)框架做了以下優(yōu)化 自定義vuex-plugins-loading 路由切換動畫 + keep alive 動態(tài)管理緩存組件 better-sc...
摘要:主要用于元素可見性的監(jiān)聽,比傳統(tǒng)通過全局監(jiān)聽事件去判斷可見性無論是性能還是便利性都要好得多。問題是這種通過監(jiān)聽的方式很容易導(dǎo)致性能問題,或者多多少少會有些性能損失。 IntersectionObserver主要用于元素可見性的監(jiān)聽,比傳統(tǒng)通過全局監(jiān)聽scroll事件去判斷可見性無論是性能還是便利性都要好得多。因?yàn)閍pi比較新,存在兼容性問題,好在已經(jīng)有了兼容的polyfill.其基本介...
摘要:基于這種思路,那留給我們的只有兩步,組件設(shè)計和數(shù)據(jù)設(shè)計。關(guān)于組件的相關(guān)邏輯,可能要在文章里面一次性說清楚,還是需要費(fèi)很大的精力,不過希望數(shù)據(jù)驅(qū)動的思想能夠讓之前沒有體會到這種開發(fā)樂趣的小伙伴們有到新的想法。 在日常開發(fā)中,我們肯定不止一次碰到重復(fù)的業(yè)務(wù)代碼,明明功能相似,但總沒思路去把它封裝成組件。關(guān)于封裝組件,希望這篇文章能帶給大家新的思路,去更高效的完成日常開發(fā)。(注:例子都是基于...
閱讀 2052·2021-10-08 10:05
閱讀 1892·2021-09-22 15:31
閱讀 3013·2021-09-22 15:13
閱讀 3494·2021-09-09 09:34
閱讀 2100·2021-09-03 10:46
閱讀 3129·2019-08-30 15:56
閱讀 1710·2019-08-30 15:53
閱讀 2365·2019-08-30 15:44