Skip to content

Select 选择器

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

基础用法

适用广泛的基础单选。

基础用法

禁用选项

在选项中设置 disabled 属性可以禁用该选项。

禁用选项

禁用状态

使用 disabled 属性禁用整个选择器。

选项一
禁用状态

可清空单选

设置 clearable 属性可以清空已选项。

选项一
可清空

多选

设置 multiple 属性可以启用多选,此时 v-model 的值为当前选中值所组成的数组。

多选

折叠标签

多选时,使用 collapse-tags 属性折叠标签。

选项一选项二 +1
折叠标签

可搜索

设置 filterable 属性可以启用搜索功能。

可搜索

远程搜索

设置 remoteremote-method 属性可以从服务器搜索数据。

远程搜索

创建条目

设置 allow-create 属性允许用户创建新条目。需配合 filterable 使用。

创建条目

虚拟滚动

当选项数量较大时,可以使用虚拟滚动来优化性能。设置 virtual-scroll 属性启用虚拟滚动。

虚拟滚动

虚拟滚动完整配置

通过 item-heightheight 属性可以自定义虚拟滚动的行高和容器高度。

  • virtual-scroll: 启用虚拟滚动
  • item-height: 每个选项的高度(默认 34px)
  • height: 下拉框容器高度(默认 274px)
虚拟滚动完整配置

不同尺寸

使用 size 属性改变选择器大小。

不同尺寸

在 Nuxt 中使用

Select 组件完全支持 Nuxt 3/4 的 SSR 渲染。在 Nuxt 项目中使用时,组件会自动导入,无需手动注册。

Nuxt 中使用

SSR 注意事项

  • ✅ 基础选择功能完全支持
  • ✅ 多选及折叠标签支持
  • ✅ 选项分组及搜索支持
  • ✅ 远程搜索支持
  • ✅ 虚拟滚动(SSR 时初始化为基础模式,客户端激活后自动开启优化)
  • ⚠️ DOM 方法如 focus()blur() 必须在 onMounted 中调用

SSR 安全性

Select 组件已通过完整的 SSR 测试,确保服务端和客户端渲染的 HTML 结构完全一致,兼容 Nuxt 的 Hydration 流程。

API

Props

属性名说明类型默认值
model-value / v-model绑定值string | number | boolean | array
options选项数据SelectOption[][]
placeholder占位文本string
disabled是否禁用booleanfalse
clearable是否可清空booleanfalse
size输入框尺寸'large' | 'default' | 'small''default'
multiple是否多选booleanfalse
multiple-limit多选时最多可选数量,0 为不限制number0
filterable是否可搜索booleanfalse
filter-method自定义过滤方法(query: string) => void
remote是否远程搜索booleanfalse
remote-method远程搜索方法(query: string) => void
loading是否正在加载booleanfalse
loading-text加载文本string'加载中...'
no-match-text无匹配数据文本string'无匹配数据'
no-data-text无数据文本string'无数据'
allow-create是否允许创建新选项booleanfalse
collapse-tags是否折叠标签booleanfalse
max-collapse-tags最大折叠标签数number1
virtual-scroll是否启用虚拟滚动booleanfalse
item-height虚拟滚动项高度number34
height虚拟滚动容器高度number274
teleported是否将下拉框插入到 bodybooleantrue
fit-input-width下拉框宽度是否与输入框一致booleantrue
tag-type标签类型'success' | 'info' | 'warning' | 'danger' | ''''
value-key值的键名string'value'
label-key标签的键名string'label'

SelectOption

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

Events

事件名说明回调参数
change选中值变化时触发(value: any) => void
focus获取焦点时触发(event: FocusEvent) => void
blur失去焦点时触发(event: FocusEvent) => void
clear点击清空按钮时触发() => void
visible-change下拉框显示/隐藏时触发(visible: boolean) => void
remove-tag多选模式下移除标签时触发(value: any) => void

Slots

插槽名说明作用域
default自定义选项内容{ option: SelectOption }
prefix输入框前缀内容
empty无数据时的内容

Expose

属性名说明类型
focus使 select 获取焦点() => void
blur使 select 失去焦点() => void

主题变量

Select 组件使用以下 CSS 变量,你可以通过覆盖这些变量来自定义样式:

变量名说明默认值
--yh-select-border-color边框颜色var(--yh-border-color)
--yh-select-hover-border-color悬停边框色var(--yh-border-color-hover)
--yh-select-focus-border-color聚焦边框色var(--yh-color-primary)
--yh-select-disabled-bg-color禁用背景色var(--yh-fill-color-light)
--yh-select-tag-bg-color标签背景色var(--yh-fill-color)

Released under the MIT License.