欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

vue2中的el-select組件數(shù)據(jù)太多,如何實現(xiàn)滾動加載數(shù)據(jù)效果

 更新時間:2024年04月25日 09:47:17   作者:艾苧  
這篇文章主要介紹了vue2中的el-select組件數(shù)據(jù)太多,如何實現(xiàn)滾動加載數(shù)據(jù)效果,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

項目場景

在我們平常開發(fā)中,我們的下拉框數(shù)據(jù)大部分都是后端一次性返回,然后前端直接塞到頁面渲染

我之前也是這么做的,但今天發(fā)現(xiàn)數(shù)據(jù)變得越來越多,已經(jīng)有五百多條了

所以我就決定著手優(yōu)化一下,怎么優(yōu)化呢

比如 分頁加載?虛擬列表?

問題描述

當我們使用el-select下拉框選擇數(shù)據(jù)的時候,避免不了數(shù)據(jù)過多,導致一上來渲染到頁面會出現(xiàn)卡頓現(xiàn)象

比如說四五百條數(shù)據(jù),一下子塞到下拉框中,頁面剛開始渲染的時候

頁面許多地方都在渲染數(shù)據(jù)、重排、重繪,數(shù)據(jù)少還可以,數(shù)據(jù)太多會影響性能。

解決方案

el-select給我們提供了 支持遠程搜索的功能,這樣我們可以一次渲染少許數(shù)據(jù),剩下數(shù)據(jù)可以通過搜索獲取。

但有時候 我不知道要搜索的數(shù)據(jù)名字叫什么,從而導致無法有效搜索,還有就是每次搜索都要請求一次數(shù)據(jù),其實官方這個優(yōu)化已經(jīng)解決大部分場景問題了。 

對于el-select的場景,顯然 虛擬列表 不是最優(yōu)的,因為虛擬列表會把視口外的元素從dom樹里移出去,導致我們選擇的數(shù)據(jù)狀態(tài)無法保存,所以我決定使用分頁加載 。

后端剛開始一次性把所有數(shù)據(jù)返回給我,然后前端分批進行渲染,如果后端一次性請求所有數(shù)據(jù)太慢,也可以分批加載,具體可以與后端溝通。

代碼如下

一開始先拿20條數(shù)據(jù),渲染頁面,聲明一個變量保存所有數(shù)據(jù)

//html結構
 <el-select v-model="hospital" @visible-change="visible" placeholder="請選擇醫(yī)院" filterable collapse-tags multiple @change='changeHospital'>
     <el-option :disabled="loading" :label="item.hospital_name" :value="item.hospital_id" v-for="(item,index) in hospitalList" :key="item.hospital_id"></el-option>
 </el-select>

//js代碼

 // 下拉框出現(xiàn)的時候事件
  visible(val){
 		 //如果多個下拉框,需要具體給某個標簽綁定
        let scroll = document.querySelectorAll('.el-scrollbar__wrap')
        //顯示的時候綁定,隱藏的時候移出綁定事件
        if(val){
             scroll[1].addEventListener('scroll',this.scrollLoad)
        }else{
             scroll[1].removeEventListener('scroll',this.scrollLoad)
         }
   },
    // 下拉框滾動分頁加載數(shù)據(jù)
    scrollLoad(e){
         const { target: { clientHeight,scrollHeight,scrollTop } } = e
         const step = 100 //間隔,距離底部100的時候加載數(shù)據(jù)
         const len = this.hospitalList.length //獲取當前展示的醫(yī)院列表長度
         if(len >= this.hospital_list.length)return //數(shù)據(jù)加載完畢
         //從總列表里每次 截取一段數(shù)據(jù),以便后期追加到頁面
         // 每次追加20條
         const data = this.hospital_list.slice(len,len + 20)
         //判斷觸底加載數(shù)據(jù)    
         if(clientHeight + scrollTop >= scrollHeight - step){
              this.hospitalList.push(...data)
              console.log('觸底加載數(shù)據(jù)');
         }
   }

如果感覺滾動監(jiān)聽太頻繁,可以加個節(jié)流處理,我這里沒有加

總結

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • Vue+WebSocket頁面實時刷新長連接的實現(xiàn)

    Vue+WebSocket頁面實時刷新長連接的實現(xiàn)

    最近vue項目要做數(shù)據(jù)實時刷新,數(shù)據(jù)較大,會出現(xiàn)卡死情況,所以本文主要介紹了頁面實時刷新長連接,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-06-06
  • vue.js 輸入框輸入值自動過濾特殊字符替換中問標點操作

    vue.js 輸入框輸入值自動過濾特殊字符替換中問標點操作

    這篇文章主要介紹了vue.js 輸入框輸入值自動過濾特殊字符替換中問標點操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-08-08
  • Vue頭像處理方案小結

    Vue頭像處理方案小結

    這篇文章主要介紹了Vue頭像處理方案,實現(xiàn)思路主要是通過獲取后臺返回頭像url,判斷圖片寬度,高度。具體實例代碼大家參考下本文
    2018-07-07
  • Vue2.x與Vue3.x中路由鉤子的區(qū)別詳解

    Vue2.x與Vue3.x中路由鉤子的區(qū)別詳解

    這篇文章主要介紹了Vue2.x與Vue3.x中路由鉤子的區(qū)別,分別介紹了路由鉤子的分類,路由配置守衛(wèi)鉤子以及組件內守衛(wèi)鉤子等有需要的朋友可以借鑒參考下
    2021-09-09
  • 詳解Vue-基本標簽和自定義控件

    詳解Vue-基本標簽和自定義控件

    本篇文章主要介紹了Vue-基本標簽和自定義控件,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-03-03
  • Vue?圖片監(jiān)聽鼠標滑輪滾動實現(xiàn)圖片縮小放大功能(實現(xiàn)思路)

    Vue?圖片監(jiān)聽鼠標滑輪滾動實現(xiàn)圖片縮小放大功能(實現(xiàn)思路)

    其實想要實現(xiàn)功能很簡單,就是在一張圖片上監(jiān)聽鼠標滑輪滾動的事件,然后根據(jù)上滾還是下滾實現(xiàn)圖片的縮放,這篇文章主要介紹了Vue?實現(xiàn)圖片監(jiān)聽鼠標滑輪滾動實現(xiàn)圖片縮小放大功能,需要的朋友可以參考下
    2023-03-03
  • element table跨分頁多選及回顯的實現(xiàn)示例

    element table跨分頁多選及回顯的實現(xiàn)示例

    本文主要介紹了element table跨分頁多選及回顯的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • vue去除數(shù)組指定位置元素的幾種方法

    vue去除數(shù)組指定位置元素的幾種方法

    這篇文章主要介紹了vue剔除數(shù)組指定位置元素的幾種方法,文中主要介紹了單個去除和批量去除這兩種方法,并通過代碼示例講解的非常詳細,需要的朋友可以參考下
    2024-03-03
  • 詳解Weex基于Vue2.0開發(fā)模板搭建

    詳解Weex基于Vue2.0開發(fā)模板搭建

    這篇文章主要介紹了詳解Weex基于Vue2.0開發(fā)模板搭建,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-03-03
  • 關于element-ui中@selection-change執(zhí)行兩次的問題

    關于element-ui中@selection-change執(zhí)行兩次的問題

    這篇文章主要介紹了關于element-ui中@selection-change執(zhí)行兩次的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08

最新評論