-
需求:
在项目中一个查询下拉框中需要展示10000条数据,这10000条数据去后端查询虽然比较快,但是将查询结果返回给前端需要进行渲染,前端就会造成卡顿的现象,这时候就可以使用滑动加载只渲染总数据前100条数据以保证不卡顿。
-
解决方案
需要搜索的时候对从后台拿到的数据进行过滤,也只取前100条,然后通过select下拉框popupScroll事件,下拉列表滚动时的回调,每次回调时都添加一部分数据来解决下拉框的卡顿问题。 同时对下拉框实现一个模糊查询的功能,数据过多查找不方便的问题。
-
具体代码
HTML:
<a-select
v-model="queryParam.batchCode"
placeholder="请选择"
allowClear
showSearch
optionFilterProp="label"
@popupScroll="handlePopupScroll"
@search="handleSearch"
>
<a-select-option
v-for ="(tValue,index) in frontBatchCode"
:value = "tValue"
:key = "index"
:label = "tValue"
>
{
{ tValue }}
</a-select-option>
</a-select>
js部分:
(1)data中定义的数据和变量
data(){
return {
listBatchCode: