Skip to content

Select 选择器

当选项较多时,使用下拉菜单展示并选择内容。

基础用法

通过 options 数组配置选项,使用 v-model 绑定选中值。

可多选

通过 multiple 属性启用多选,选中项以标签形式展示。

多选标签折叠

通过 collapseTags 折叠多选标签,collapseTagsLimit 控制折叠前最多显示的标签数。

可搜索

通过 filterable 属性启用搜索过滤,快速定位选项。

分组选项

通过 optionGroups 属性传入分组数据,按类别展示选项。

创建新选项

通过 allowCreate 属性允许用户在搜索不到匹配项时创建新选项。需配合 filterable 使用。

远程搜索

通过 remoteremoteMethod 启用远程搜索,适合大数据量场景。

全选与反选

在多选模式下,下拉菜单顶部自动显示全选/反选栏,支持一键全选或取消全选。

虚拟滚动

通过 virtualScroll 属性启用虚拟滚动,适合 1000+ 选项的大数据量场景,大幅减少 DOM 节点数量。

大数据量示例

当选项数量达到 10,000+ 时,虚拟滚动可将 DOM 节点数从上万减少到几十个。以下示例展示 10,000 条数据的单选 + 搜索、以及多选 + 搜索场景。通过 estimatedOptionHeight 可自定义选项高度。

以下两个选择器均加载了 10,000 条选项,开启虚拟滚动后性能依然流畅。

可清空与尺寸

通过 clearable 属性显示清空按钮,size 属性调整选择器尺寸。

前缀图标与空状态

通过 prefix 插槽添加前缀内容,通过 empty 插槽自定义无数据时的展示。

禁用与加载状态

Select API

SelectOption 类型

ts
interface SelectOption {
  label: string
  value: string | number
  disabled?: boolean
}

SelectOptionGroup 类型

ts
interface SelectOptionGroup {
  label: string
  options: SelectOption[]
  disabled?: boolean
}

Props

参数说明类型默认值
modelValue绑定值string | number | (string | number)[]
options选项数据源(扁平)SelectOption[][]
optionGroups分组选项数据源SelectOptionGroup[][]
multiple是否多选booleanfalse
filterable是否可搜索过滤booleanfalse
allowCreate是否允许创建新选项(需配合 filterable)booleanfalse
clearable是否可清空booleanfalse
disabled是否禁用booleanfalse
loading是否显示加载中booleanfalse
loadingText加载中显示的文案string加载中...
remote是否远程搜索booleanfalse
remoteMethod远程搜索方法(query: string) => Promise<SelectOption[]>
collapseTags多选时是否折叠标签booleanfalse
collapseTagsLimit折叠前最多显示的标签数number1
virtualScroll是否启用虚拟滚动(推荐 1000+ 选项时开启)booleanfalse
estimatedOptionHeight虚拟滚动选项的预估行高(px)number36
placeholder占位文本string请选择
size选择器尺寸large | medium | smallmedium
noDataText无数据时显示的文本string暂无数据
noMatchText无匹配时显示的文本string无匹配数据

Events

事件名说明回调参数
update:modelValue绑定值更新时触发(value: SelectValue)
change选中值变化时触发(value: SelectValue)
focus获取焦点时触发(event: FocusEvent)
blur失去焦点时触发(event: FocusEvent)
clear点击清空按钮时触发()
visible-change下拉菜单显隐变化时触发(visible: boolean)
remove-tag多选移除标签时触发(tag: string | number)
search搜索输入时触发(query: string)
create-tag创建新选项时触发(value: string)

Slots

插槽名说明
prefix选择器前置内容(如前缀图标)
empty无选项时的自定义内容

基于 MIT 许可发布