ElementUI el-select 數(shù)據(jù)過多解決辦法

1. 場(chǎng)景描述

不知道你有沒有這樣的經(jīng)歷跷睦,下拉框的選項(xiàng)很多,上萬個(gè)選項(xiàng)甚至更多溅潜,這個(gè)時(shí)候如果全部把數(shù)據(jù)放到下拉框中渲染出來术唬,瀏覽器會(huì)卡死,體驗(yàn)會(huì)特別不好

用人會(huì)說element-ui的select有一個(gè)remote-method滚澜,支持遠(yuǎn)程搜索粗仓,我們讓服務(wù)端支持一下不就可以了,當(dāng)然這是一種解決的方案设捐。但是有時(shí)候這種方法有時(shí)候不一定適用

(1)有時(shí)候服務(wù)端數(shù)據(jù)是經(jīng)過計(jì)算返回給我們的借浊,可能返回不是特別快,體驗(yàn)不是很好

(2)有時(shí)候數(shù)據(jù)可能只有幾千條挡育,全部渲染又不太合適巴碗,一直掉接口不是特別好

(3)僅僅通過前端能不能解決朴爬,如果能解決即寒,豈不是減輕了服務(wù)端的工作和壓力

2.解決辦法

1 ) 分段加載:也不加載下拉項(xiàng),通過點(diǎn)擊下拉框的時(shí)候召噩,再去加載母赵,此時(shí)的選項(xiàng)全部加載進(jìn)來,該種情況只適用于緩加載情況具滴,需要點(diǎn)擊加載完后才能下拉選項(xiàng)凹嘲,體驗(yàn)一般。

2 )提示:element-ui的select有一個(gè)filter-method方法构韵,我們可以通過這個(gè)方法來進(jìn)行過濾下拉項(xiàng)

假設(shè)我們有個(gè)下拉框是用來選擇用戶的

<el-select
  v-model="userId"
  filterable
  :filter-method="userFilter"
  clearable>
  <el-option
    v-for="item in userList"
    :key="item.userId"
    :label="item.username"
    :value="item.userId"
  ></el-option>
</el-select>
userFilter(query = '') {
  let arr = this.allUserList.filter((item) => {
    return item.username.includes(query) || item.userId.includes(query)
  })
  if (arr.length > 50) {
    this.userList = arr.slice(0, 50)
  } else {
    this.userList = arr
  }
},
getUserWhiteList() {
  HttpRequest.post("/api/admin/community/getUserWhiteList").then(
    response => {
      this.allUserList = response.data.list;
      this.userFilter()
    }
  );
},

如上所示周蹭,我們從后臺(tái)獲取用戶列表,經(jīng)過我們自己的過濾疲恢,我們每次只渲染50條數(shù)據(jù)凶朗,無論有多少數(shù)據(jù),對(duì)我們來說也支持一個(gè)變量显拳,占個(gè)內(nèi)存棚愤。當(dāng)然數(shù)據(jù)越多,數(shù)組的遍歷也會(huì)相應(yīng)的慢,但是這個(gè)影響不大宛畦。

我們不僅能過濾名字瘸洛,還可以對(duì)我們制定的任一項(xiàng)進(jìn)行過濾

優(yōu)化:上面的代碼我們還可以適當(dāng)優(yōu)化下,只有發(fā)現(xiàn)了數(shù)組長(zhǎng)度超過了50項(xiàng)次和,我們就停止遍歷

3.效果圖

image
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末反肋,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子踏施,更是在濱河造成了極大的恐慌囚玫,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,826評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件读规,死亡現(xiàn)場(chǎng)離奇詭異抓督,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)束亏,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,968評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門铃在,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人碍遍,你說我怎么就攤上這事定铜。” “怎么了怕敬?”我有些...
    開封第一講書人閱讀 164,234評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵揣炕,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我东跪,道長(zhǎng)畸陡,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,562評(píng)論 1 293
  • 正文 為了忘掉前任虽填,我火速辦了婚禮丁恭,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘斋日。我一直安慰自己牲览,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,611評(píng)論 6 392
  • 文/花漫 我一把揭開白布恶守。 她就那樣靜靜地躺著第献,像睡著了一般。 火紅的嫁衣襯著肌膚如雪兔港。 梳的紋絲不亂的頭發(fā)上庸毫,一...
    開封第一講書人閱讀 51,482評(píng)論 1 302
  • 那天,我揣著相機(jī)與錄音押框,去河邊找鬼岔绸。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的盒揉。 我是一名探鬼主播晋被,決...
    沈念sama閱讀 40,271評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼刚盈!你這毒婦竟也來了羡洛?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,166評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤藕漱,失蹤者是張志新(化名)和其女友劉穎欲侮,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體肋联,經(jīng)...
    沈念sama閱讀 45,608評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡威蕉,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,814評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了橄仍。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片韧涨。...
    茶點(diǎn)故事閱讀 39,926評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖侮繁,靈堂內(nèi)的尸體忽然破棺而出虑粥,到底是詐尸還是另有隱情,我是刑警寧澤宪哩,帶...
    沈念sama閱讀 35,644評(píng)論 5 346
  • 正文 年R本政府宣布娩贷,位于F島的核電站,受9級(jí)特大地震影響锁孟,放射性物質(zhì)發(fā)生泄漏彬祖。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,249評(píng)論 3 329
  • 文/蒙蒙 一罗岖、第九天 我趴在偏房一處隱蔽的房頂上張望涧至。 院中可真熱鬧,春花似錦桑包、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,866評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至烧颖,卻和暖如春弱左,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背炕淮。 一陣腳步聲響...
    開封第一講書人閱讀 32,991評(píng)論 1 269
  • 我被黑心中介騙來泰國打工拆火, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,063評(píng)論 3 370
  • 正文 我出身青樓们镜,卻偏偏與公主長(zhǎng)得像币叹,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子模狭,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,871評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容