el-select 过滤大量数据卡顿
如果下拉数据量少没有问题,但如果下拉的数据量很大,会导致卡顿甚至卡死。
·
问题:使用 el-select
做下拉选择,只设置filterable
,下拉数据量少没有问题,但如果下拉的数据量很大,会导致卡顿甚至卡死。
解决方法:使用remote
解决
在el-select
属性里增加如下代码
remote
remote-show-suffix
:remote-method="filterFn"
js 中增加
const filterFn = (query) => {
if (query !== '') {
options.value = list.filter(item => item.label.toLowerCase().includes(query.toLowerCase()))
} else {
options.value = list
}
}
完整代码如下
<template>
<el-select
v-model="value"
filterable
remote
remote-show-suffix
:remote-method="filterFn"
>
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</template>
<script setup>
import { ref } from 'vue'
const list = [] // 这里存放所有的数据
const options = ref([]) // 这里存放过滤后的数据
const filterFn = (query) => {
if (query !== '') {
options.value = list.filter(item => item.label.toLowerCase().includes(query.toLowerCase()))
} else {
options.value = list
}
}
</script>

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐
所有评论(0)