输入搜索 + 下拉选择组件,支持分组、清空、空状态文案、自定义筛选和虚拟化列表。
| 属性 | 类型 | 默认值 | 说明 |
|---|---|---|---|
disabled | boolean | false | 是否禁用 |
clearable | boolean | false | 是否显示清空按钮 |
position | 'inline' | 'popper' | 'popper' | 下拉内容定位方式 |
options | (Option | GroupOption)[] | 必需 | 选项数据 |
placeholder | string | - | 输入框占位文本 |
emptyText | string | '' | 空状态文案 |
filter | (searchValue: string, option: Option) => boolean | - | 自定义筛选函数 |
virtualList | boolean | false | 是否启用虚拟化列表 |
class | HTMLAttributes['class'] | - | 自定义 CSS 类 |
interface Option {
label: string
value: AcceptableValue
disabled?: boolean
}interface GroupOption {
label: string
options: Option[]
}| 名称 | 说明 |
|---|---|
empty | 自定义空状态内容 |
| 事件名 | 说明 | 回调参数 |
|---|---|---|
change | 选中值变化时触发 | value: AcceptableValue | undefined |
clear | 点击清空按钮时触发 | - |
v-model 实现选中值的双向绑定options 支持普通选项和分组选项两种格式filter 时,组件使用不区分大小写的 label.includes(searchValue) 匹配filter 会同时作用于普通列表和虚拟列表,返回 true 时保留该选项,返回 false 时隐藏该选项virtual-list,减少渲染压力virtual-list 后会按扁平选项渲染,不显示分组标题clearable 模式下,仅当组件有选中值或输入内容且获得焦点或悬停时显示清空按钮emptyText 设置简单文案,也可以使用 empty 插槽自定义内容