Select 下拉选择器

TIP

下拉选择器现在已经使用虚拟列表改造, 这意味着它能够支撑十万级别的数据渲染. 或许可能存在部分缺陷.

背景

在某些用例中,单个选择器可以最终加载数万行的数据。渲染到 DOM 中的许多数据可能是浏览器的负担,这可能导致性能问题。为了更好的用户和开发者体验,因此开发出一个虚拟化的选择器。

基础用法

适用广泛的基础选择器

多选

最基础的多选选择器

隐藏多余标签的多选

可过滤的多选

当选项太多时,你可以使用 filterable 选项来启用过滤功能来找到所需的选项

禁用选择器本身或选项

你可以选择禁用 Select 或者 Select 的 某个选项

给选项进行分组 (将会改进 2022/3/29)

我们可以为选项分组,只需要和下面这个例子一样便可。

自定义选项的渲染模板

我们也可以通过自己自定义模板来渲染自己想要的选项内容。

一键清除

一键删除所有的选项(也可适用于单选)

创建临时选项

可以创建并选中选项中不存在的条目

使用 allow-create 属性,用户可以通过输入框创建新项目。 为了使 allow-create 正确的工作, filterable 的值必须为 true.

TIP

最好在使用 allow-create 属性的同时设置 :reserve-keyword="false"

远程搜索

输入关键字以从远程服务器中查找数据。

Select 属性

属性说明类型可选值默认值
model-value / v-model绑定值string / number / boolean / object
multiple是否多选booleanfalse
disabled是否禁用booleanfalse
selectable指定哪些选项可选(node) => boolean
value-key作为 value 唯一标识的键名stringvalue
label-key作为 label 唯一标识的键名stringvalue
size输入框尺寸stringlarge/default/smalldefault
clearable是否可以清空选项booleanfalse
clear-icon自定义清除图标string / componentCircleClose
collapse-tags多选时是否将选中值按文字的形式展示booleanfalse
multiple-limit多选时用户最多可以选择的项目数, 为 0 则不限制number0
name选择器的输入框的原生 name 属性string
effectTooltip 主题, 内建主题: dark / lightstringstringlight
autocomplete选择器的自动完成stringoff
placeholder占位string请选择
filterable开启过滤booleanfalse
allow-create允许创建选项,使用时保证 filterable=truebooleanfalse
reserve-keyword过滤后的选项是否保留关键字booleantrue
no-data-text无数据时显示的内容stringNo Data
popper-classpopper 的类string
popper-append-to-body(废弃了,使用 teleported)将 popper 插入到 body 中渲染,如果 popper 的位置异常可以尝试使用boolean-false
teleported将 popper 插入到 body 中渲染,如果 popper 的位置异常可以尝试使用booleantrue / falsetrue
popper-options自定义 popper 的属性, 更多请查看popper.jsobject--
automatic-dropdown对于不可过滤的 Select,该属性决定在聚焦输入时是否弹出选项菜单boolean-false
clear-icon自定义清除图标string / ComponentCircleClose
height下拉面板的高度, 每项为 34pxnumber-170
scrollbar-always-on控制滚动条是否一直显示boolean-false
remote远程查询数据booleanfalse
remote-method远程数据查询方法。要使用得确保 filterable=truefunction(keyword: string)

Select 事件

事件名说明回调参数
change选中值发生变化时触发val,目前的选中值
visible-change下拉框出现/隐藏时触发val,出现则为 true,隐藏则为 false
remove-tag多选模式下移除 tag 时触发val,移除的 tag 值
clear可清空的单选模式下用户点击清空按钮时触发
blur当选择器的输入框失去焦点时触发(event: FocusEvent)
focus当选择器的输入框获得焦点时触发(event: FocusEvent)

Select 插槽

插槽名说明
default自定义 Option 模板
empty自定义当选项为空时的内容
prefix输入框的前缀