前端vue框架select下拉數(shù)據(jù)量過(guò)大造成卡頓問(wèn)題解決辦法
問(wèn)題:
當(dāng)加載上百條、上千條數(shù)據(jù),導(dǎo)致下拉框數(shù)據(jù)卡頓
解決:
將數(shù)據(jù)分割成更小的單元,每次下拉到底部加載一部分
利用下拉滾動(dòng)事件
視圖部分:
<a-select label-in-value :default-value="{ key: 'lucy' }" style="width: 120px" @change="handleChange" @popupScroll="handldpopupscroll" ><a-select-option></a-select-option></a-select>
邏輯處理:
//每次滾動(dòng)觸發(fā) handldpopupscroll(e){ //向下滾動(dòng)時(shí),判斷e.target.scrollHeight(實(shí)際下拉列表高度)-e.target.clientHeight(可視框高度)==e.target.scrollTop(卷起的高度) if(e.target.scrollHeight-e.target.clientHeight==e.target.scrollTop){ //(指向下一個(gè)分組數(shù)據(jù)) this.scrollPage++ //第一個(gè)位置=當(dāng)前分組數(shù)據(jù)*每組數(shù)據(jù)的數(shù)量 let beforts=this.scrollNumber*(this.scrollPage-1) //第二個(gè)位置=下一個(gè)分組指向*每組數(shù)據(jù)的數(shù)量-1 let afters=this.scrollNumber*this.scrollPage-1 展示數(shù)組=原數(shù)組.slice(第一個(gè)位置,第二個(gè)位置) //(使滑塊位置不置于最上面,才能向上滑動(dòng)) e.target.scrollTop=5 //為了防止滑塊滑動(dòng)太快將以上加在延時(shí)器里面,不然數(shù)據(jù)會(huì)跳 } //向上滾動(dòng)時(shí),判斷e.target.scrollTop(卷起的高度小于1)和this.scroPage指向下一個(gè)分組數(shù)據(jù)的角標(biāo)大于1 if(target.scrollTop<1&&this.scroPage>1){ //(指向上一個(gè)分組數(shù)據(jù)) this.scrollPage-- //第一個(gè)位置=當(dāng)前分組數(shù)據(jù)*每組數(shù)據(jù)的數(shù)量 let beforts=this.scrollNumber*(this.scrollPage-1) //第二個(gè)位置=下一個(gè)分組指向*每組數(shù)據(jù)的數(shù)量-1 let afters=this.scrollNumber*this.scrollPage-1 展示數(shù)組=原數(shù)組.slice(第一個(gè)位置,第二個(gè)位置) //判斷是否是第一組數(shù)據(jù) if(this.scrollPage!=1){ //(使滑塊位置不置于最上面,才能向上滑動(dòng)) e.target.scrollTop=5 } //為了防止滑塊滑動(dòng)太快將以上加在延時(shí)器里面,不然數(shù)據(jù)會(huì)跳 } }
總結(jié)
到此這篇關(guān)于前端vue框架select下拉數(shù)據(jù)量過(guò)大造成卡頓問(wèn)題解決辦法的文章就介紹到這了,更多相關(guān)vue select下拉數(shù)據(jù)量過(guò)大卡頓內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vue-extend和vue-component注冊(cè)一個(gè)全局組件方式
這篇文章主要介紹了vue-extend和vue-component注冊(cè)一個(gè)全局組件方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-11-11如何使用Vue3的onMounted鉤子函數(shù)及vue3中onMounted的用法詳解
本文詳細(xì)介紹了Vue3中的`onMounted`鉤子函數(shù)的前世今生,包括其在Vue2中的前身`mounted`鉤子,以及Vue3中使用Composition?API的`onMounted`鉤子的用法,文章涵蓋了`onMounted`的多種用法,感興趣的朋友跟隨小編一起看看吧2024-11-11vue.config.js中配置configureWebpack和chainWebpack以及一些常用的配置
configureWebpack和chainWebpack都是Vue CLI中用于修改Webpack配置的工具,configureWebpack可以通過(guò)對(duì)象或函數(shù)修改配置,簡(jiǎn)單直接;chainWebpack則使用WebpackChainAPI,適合復(fù)雜配置,兩者可以結(jié)合使用,以達(dá)到更精細(xì)的配置需求,幫助開(kāi)發(fā)者優(yōu)化項(xiàng)目構(gòu)建2024-10-10vue 自動(dòng)化路由實(shí)現(xiàn)代碼
這篇文章主要介紹了vue 自動(dòng)化路由實(shí)現(xiàn)代碼,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-09-09vue實(shí)現(xiàn)購(gòu)物車(chē)結(jié)算功能
這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)購(gòu)物車(chē)結(jié)算功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-06-06