Virtualized Select 虚拟化选择器

TIP

这个组件目前在测试当中,如果在使用中发现任何漏洞和问题,请在 GitHub 中提交 issue 以便我们进行处理。

背景

在某些使用情况下,单个选择器可能最终加载数万行数据。 将这么多的数据渲染至 DOM 中可能会给浏览器带来负担,从而造成性能问题。 为了更好的用户和开发者体验,我们决定添加此组件。

基础用法

适用广泛的基础选择器

Please select
Please select
Please select

多选

最基础的多选选择器

Please select

隐藏多余标签的多选

默认情况下选中值会以 Tag 的形式展现,你也可以设置collapse-tags属性将它们合并为一段文字。 您可以使用 collapse-tags-tooltip 属性来启用鼠标悬停折叠文字以显示具体所选值的行为。

use collapse-tags

Please select

use collapse-tags-tooltip

Please select

use max-collapse-tags

Please select

可过滤的多选

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

Please select

禁用选择器本身或选项

您可以选择禁用 Select 或者 Select 中的某个选项。

Please select
Please select

给选项进行分组

只要数据格式满足特定要求,我们就可以按照自己的意愿为选项进行分组。

Please select

一键清除

我们可以同时清除所有选定的选项。此设定也适用于单选。

Please select
Please select

自定义选项的渲染模板

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

Please select

自定义下拉菜单的头部 2.5.2

您可以自定义下拉菜单的头部。

使用slot 自定义内容

Select

自定义下拉菜单的底部 2.5.2

您可以自定义下拉菜单的底部。

使用slot 自定义内容

Select

创建临时选项

创建并选中未包含在初始选项中的条目。

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

TIP

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

Please select
Please select

set reserve-keyword false

Please select

远程搜索

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

从服务器搜索数据,输入关键字进行查找。为了启用远程搜索,需要将filterableremote设置为true,同时传入一个remote-methodremote-method为一个Function,它会在输入值发生变化时调用,参数为当前输入值。

Please enter a keyword

使用 value-key 键属性

options.value 是一个对象时,您应该为它设置一个唯一的标识名称

TIP

2.4.0 之前,value-key既用作所选对象的唯一值,也用作options中表示值的对应 key。 现在 value-key 仅作为所选对象的唯一值使用,选项中值的 key 是 props.value.

自定义选项 2.4.2

当您的 options 格式不同于默认格式 您可以通过 props 属性自定义 options

Please select

自定义标签 2.5.0

您可以自定义标签。

将自定义的标签插入 el-select 的 slot 中即可。 collapse-tags, collapse-tags-tooltip, max-collapse-tags 在此模式下不生效.

自定义加载 2.5.2

修改加载区域内容

loading icon1

Please enter a keyword

loading icon2

Please enter a keyword

空值配置2.7.0

若想配置如空字符串为有效值而不是空值,可以配置 empty-values[null, undefined].

如果您想要将清空值更改为 null, 请设置 value-on-clearnull

自定义标签 2.7.4

您可以自定义标签

: Option 1

API

Attributes

属性名说明类型默认值
model-value / v-model选中项绑定值string / number / boolean / object / array
options选项的数据源, value 的 key 和 label 可以通过 props自定义.array
props 2.4.2配置选项,具体看下表object
multiple是否多选booleanfalse
disabled是否禁用booleanfalse
value-key作为 value 唯一标识的键名,绑定值为对象类型时必填stringvalue
size组件大小enum''
clearable是否可以清空选项booleanfalse
clear-icon自定义清除图标string / objectCircleClose
collapse-tags多选时是否将选中值按文字的形式展示booleanfalse
multiple-limit多选时可被选择的最大数目。 当被设置为0时,可被选择的数目不设限。number0
name选择器的原生name属性string
effecttooltip 主题,内置了 dark / light 两种enum / stringlight
autocomplete自动完成选择输入stringoff
placeholder占位文字stringPlease select
filterable是否可筛选booleanfalse
allow-create是否允许创建新条目, 当使用该属性时,filterable必须设置为truebooleanfalse
filter-method自定义筛选方法Function
loading是否从远程加载数据booleanfalse
loading-text从服务器加载数据时显示的文本,默认为“Loading”string
reserve-keyword筛选时,是否在选择选项后保留关键字booleantrue
no-match-text搜索条件无匹配时显示的文字,也可以使用 empty 插槽设置,默认是 “No matching data'”string
no-data-text当在没有数据时显示的文字,你同时可以使用empty插槽进行设置。stringNo Data
popper-class选择器下拉菜单的自定义类名string''
teleported是否使用 teleport。设置成 true则会被追加到 append-to 的位置booleantrue
append-to 2.8.8下拉框挂载到哪个 DOM 元素string
persistent当下拉选择器未被激活并且persistent设置为false,选择器会被删除。booleantrue
popper-optionspopper.js parametersobjectrefer to popper.js doc{}
automatic-dropdown对于不可搜索的 Select,是否在输入框获得焦点后自动弹出选项菜单booleanfalse
height下拉菜单的高度,每一个选项为34pxnumber274
item-height下拉项的高度number34
scrollbar-always-on是否总是展示滚动条booleanfalse
remote是否从服务器获取数据booleanfalse
remote-method当输入值发生变化时触发的函数。 它的参数就是当前的输入值。 当filterable设置为 true 时才会生效Function
validate-event是否触发表单验证booleantrue
offset 2.8.8下拉面板偏移量number12
show-arrow 2.8.8下拉菜单的内容是否有箭头booleantrue
placement下拉框出现的位置enumbottom-start
fallback-placements 2.5.6dropdown 可用的 positions 请查看popper.js 文档array['bottom-start', 'top-start', 'right', 'left']
collapse-tags-tooltip 2.3.0当鼠标悬停于折叠标签的文本时,是否显示所有选中的标签。 只有当 collapse-tags 设置为 true 时才会生效。booleanfalse
max-collapse-tags 2.3.0需要显示的 Tag 的最大数量。 只有当 collapse-tags 设置为 true 时才会生效。number1
tag-type 2.5.0标签类型enuminfo
tag-effect 2.7.7标签效果enumlight
aria-label a11y 2.5.0等价于原生 input aria-label 属性string
empty-values 2.7.0组件的空值配置 参考config-providerarray
value-on-clear 2.7.0清空选项的值 参考 config-providerstring / number / boolean / Function
popper-append-to-body deprecated是否将弹出框插入至 body 元素 当弹出框的位置出现问题时,你可以尝试将该属性设置为false。booleanfalse

props

Attribute说明TypeDefault
value指定选项的值为选项对象的某个属性值stringvalue
label指定节点标签为节点对象的某个属性值stringlabel
options指定选项的子选项为选项对象的某个属性值stringoptions
disabled指定选项的禁用为选项对象的某个属性值stringdisabled

事件

名称说明类型
change当所选值更改时触发,参数是当前选中的值Function
visible-change当下拉菜单出现/消失时触发器, 当它出现时, 参数将是 true, 否则将是 falseFunction
remove-tag当一个标签在多个模式下被移除时触发,参数将被移除标签值Function
clear可清空的单选模式下用户点击清空按钮时触发Function
blur当选择器的输入框失去焦点时触发Function
focus当选择器的输入框获得焦点时触发Function

Slots

名称详情
default自定义 Option 模板
header 2.5.2下拉列表顶部的内容
footer 2.5.2下拉列表底部的内容
empty自定义当选项为空时的内容
prefix输入框的前缀
tag 2.5.0select 组件自定义标签内容
loading 2.5.2select 组件自定义 loading内容
label 2.7.4select 组件自定义标签内容

Exposes

名称描述类型
focus使选择器的输入框获取焦点Function
blur使选择器的输入框失去焦点,并隐藏下拉框Function
selectedLabel 2.8.5获取当前选中的标签object

源代码

组件样式文档

贡献者