Skip to content

Select 选择器

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

基础用法

适用于常规单选场景。

基础用法

禁用选项

在选项数据中设置 disabled 可禁用单个选项。

禁用选项

禁用状态

使用 disabled 禁用整个组件。

选项 1
禁用状态

可清空单选

设置 clearable 后可清空当前值。

选项 1
可清空单选

多选

设置 multiple 后启用多选,此时 v-model 为数组。

多选

折叠标签

多选模式下可通过 collapse-tags 折叠标签数量。

选项 1选项 2 +1
折叠标签

可搜索

设置 filterable 后可根据输入内容过滤选项。

可搜索

远程搜索

配合 remoteremote-method 可以异步拉取选项。

远程搜索

创建选项

设置 allow-create 后,用户可以基于当前输入创建临时选项,通常与 filterable 一起使用。

创建选项

虚拟滚动

选项较多时可开启 virtual-scroll 以优化渲染性能。

虚拟滚动

虚拟滚动完整配置

通过 item-heightheight 可以控制虚拟列表行高与面板高度。

  • item-height:每项高度,默认 34
  • height:下拉面板可视高度,默认 274
虚拟滚动完整配置

不同尺寸

通过 size 切换大、中、小三种尺寸。

不同尺寸

在 Nuxt 中使用

注册 YH-UI Nuxt 模块后可以直接使用 YhSelect。SSR 阶段会正常渲染选中文本和选项数据,弹层定位、远程回调以及 focus 等命令式能力会在客户端激活后继续工作。

在 Nuxt 中使用

API

Props

名称说明类型默认值
model-value / v-model绑定值YhSelectValue | YhSelectValue[]undefined
options组件渲染的选项数据YhSelectOption[][]
placeholder占位文本string''
disabled是否禁用组件booleanfalse
clearable是否允许清空当前值booleanfalse
size输入框尺寸'large' | 'default' | 'small''default'
multiple是否启用多选booleanfalse
multiple-limit多选模式最大可选数量,0 表示不限制number0
filterable是否启用关键字过滤booleanfalse
filter-method自定义本地过滤方法(query: string) => voidundefined
remote是否启用远程过滤booleanfalse
remote-method远程搜索回调(query: string) => voidundefined
loading是否显示加载状态booleanfalse
loading-text自定义加载文案,为空时回退到 locale 文案string''
no-match-text无匹配结果时的空状态文案,为空时回退到 locale 文案string''
no-data-text无选项数据时的空状态文案,为空时回退到 locale 文案string''
allow-create是否允许基于当前输入创建选项booleanfalse
collapse-tags多选模式下是否折叠标签booleanfalse
collapse-tags-tooltip折叠标签时是否显示汇总提示booleanfalse
max-collapse-tags开启 collapse-tags 时最多显示的标签数量number1
popper-class自定义下拉面板类名stringundefined
teleported是否将下拉面板传送到 bodybooleantrue
fit-input-width下拉面板宽度是否跟随输入框booleantrue
tag-type多选标签类型'success' | 'info' | 'warning' | 'danger' | ''''
virtual-scroll是否启用虚拟滚动booleanfalse
item-height虚拟列表项高度number34
height虚拟列表面板可视高度number274
validate-event是否在 changeblur 时触发表单校验booleantrue
value-key选项值字段名string'value'
label-key选项标签字段名string'label'
theme-overrides组件级主题覆盖ComponentThemeVarsundefined

类型

Select Option

名称说明类型必填
value选项值string | number | boolean
label选项标签string
disabled是否禁用该选项boolean

Events

事件名说明回调参数
change选中值变化时触发(value: YhSelectValue | YhSelectValue[] | undefined) => void
focus输入框获得焦点时触发(event: FocusEvent) => void
blur输入框失去焦点时触发(event: FocusEvent) => void
clear点击清空图标时触发() => void
visible-change下拉面板显示状态变化时触发(visible: boolean) => void
remove-tag多选模式下移除标签时触发(value: YhSelectValue) => void

Slots

插槽名说明参数
default直接传入自定义 YhOption 节点时使用-
prefix输入区域前缀内容-
empty无可用选项时的内容-
option使用 options 数据源时的自定义选项内容{ option: YhSelectOption }
tag多选模式下的自定义标签内容{ value: YhSelectValue }

Expose

名称说明类型
focus让输入框获得焦点() => void
blur让输入框失去焦点() => void
inputRef内部输入框实例引用Ref<HTMLInputElement | undefined>

Option Props

名称说明类型默认值
value选项值YhSelectValue必填
label选项标签stringundefined
disabled是否禁用booleanfalse

Option Slots

名称说明参数
default自定义选项内容-

主题变量

YhSelect 支持 themeOverrides。组件测试已覆盖 themeOverrides.borderColor 等组件级覆写输出,例如会生成 --yh-select-border-color。输入框、标签和下拉面板的其它视觉样式仍主要继承全局主题令牌,例如 --yh-border-color--yh-fill-color--yh-text-color-*

变量名说明默认值
--yh-select-border-colorthemeOverrides.borderColor 输出的边框颜色undefined

类型导出

名称说明
YhSelectPropsSelect 组件 Props 类型
YhSelectEmitsSelect 组件事件类型
YhSelectSlotsSelect 组件插槽类型
YhSelectExposeSelect 组件 Expose 类型
YhSelectOption选项数据类型
YhSelectValue选中值类型
YhSelectSize尺寸联合类型
YhSelectTagType标签类型联合类型
YhOptionPropsOption 组件 Props 类型
YhOptionSlotsOption 组件插槽类型
YhSelectInstanceSelect 组件实例类型
YhOptionInstanceOption 组件实例类型

Released under the MIT License.