虚拟化选择
TIP
该组件仍在测试中,如果您发现任何错误或问题,请在 GitHub 报告,以便我们修复。
背景
在某些用例中,单个选择器可能最终会加载数万行数据。 将如此多的数据渲染到 DOM 中可能会给浏览器带来负担,从而导致性能问题。 为了更好的用户和开发人员体验,我们决定添加此组件。
基本用法
最简单的选择器
多选
带标签的基本多选选择器
确认与取消
SelectV2 默认保留虚拟列表能力;多选场景会先缓存草稿值,再在确认后同步。
这个示例展示单选和多选的默认行为。展开多选后可以查看确认与取消流程。
尺寸
添加 size 属性以更改 Select-V2 的大小。除了默认尺寸外,还有另外两个选项:large、small。
当选择的项目太多时隐藏多余的标签
您可以使用 collapse-tags 属性将标签折叠为文本,并在点击折叠摘要时通过 collapse-tags-tooltip 查看完整选中项。
use collapse-tags
use collapse-tags-tooltip
use max-collapse-tags
可过滤的多选
当选项太多时,可以使用filterable选项启用过滤功能,以找出所需的选项
禁用选择器和选择选项
您可以选择禁用选择器本身或选项。
选项分组
只要数据满足模式,我们就可以根据需要对选项进行分组。
可清除选择器
我们可以一次性清除所有选中的选项,也适用于单选。
自定义选项渲染器
我们可以定义自己的模板来呈现弹出窗口中的选项。
下拉菜单标题 2.5.2
您可以自定义下拉列表的标题。
使用插槽自定义内容。
下拉菜单的页脚 2.5.2
您可以自定义下拉菜单的页脚。
使用插槽来自定义内容。
创建选项
创建并选择未包含在选择选项中的新项目
通过使用 allow-create 属性,用户可以通过在输入框中键入内容来创建新项目。请注意,要使 allow-create 正常工作,filterable 必须是 true。此示例还演示了 default-first-option。当此属性设置为 true 时,您可以通过按 Enter 键选择当前选项列表中的第一个选项,而无需使用鼠标或箭头键导航。
TIP
使用allow-create时最好设置:reserve-keyword="false"
远程搜索
输入关键字并从服务器搜索数据。
将filterable和remote的值与true一起设置以启用远程搜索,并且您应该传递remote-method。 remote-method是当输入值改变时调用的Function,其参数为当前输入值。
使用值键属性
当options.value是一个对象时,应该为value设置一个唯一的身份键名称
TIP
在 2.4.0 之前,value-key 既用作所选对象的唯一值,又用作 options 中的值的别名。现在value-key仅用作所选对象的唯一值,选项中的值的别名为props.value。
自定义选项的别名 2.4.2
当您的options格式与默认格式不同时,您可以通过props属性自定义options的别名
自定义标签 2.5.0
您可以自定义标签。
将自定义标签插入 el-select 的插槽中。 collapse-tags、collapse-tags-tooltip、max-collapse-tags 将不起作用。
自定义加载 2.5.2
覆盖加载内容。
空值 2.7.0
如果要支持空字符串,请将empty-values设置为[null, undefined]。
如果要将清除值更改为null,请将value-on-clear设置为null。
自定义标签 2.7.4
您可以自定义标签。
API
属性
| 名称 | 描述 | 类型 | 默认 |
|---|---|---|---|
| 模型值 / v 模型 | 绑定值 | 字符串 / 数字 / 布尔值 / 对象 / 数组 | — |
| 选项 | 选项数据,value 和 label 的密钥可以通过 props 自定义 | 数组 | — |
| 道具 2.4.2 | 配置选项见下表 | 对象 | — |
| 多个 | 是多个 | 布尔值 | 假 |
| 已禁用 | 已禁用 | 布尔值 | 假 |
| 值键 | 值的唯一标识键名称,当值是对象时需要 | 字符串 | 价值 |
| 尺寸 | 元件尺寸 | 枚举 | '' |
| 可清除 | 是否可以清除select | 布尔值 | 假 |
| 清除图标 | 自定义清晰图标 | 字符串 / 对象 | 圆圈关闭 |
| 折叠标签 | 多重选择时是否将标签折叠为文本 | 布尔值 | 假 |
| 多重限制 | 当 multiple 为 true 时,用户可以选择的最大选项数。设置为 0 时无限制 | 数字 | 0 |
| 编号 | 本机输入 id 输入 | 字符串 | — |
| 名称 | 选择输入的名称属性 | 字符串 | — |
| 效果 | 工具提示主题,内置主题:dark / light | 枚举 / 字符串 | 光 |
| 自动完成 | 选择输入的自动完成 | 字符串 | 关闭 |
| 占位符 | 占位符 | 字符串 | 请选择 |
| 可过滤 | Select 是否可过滤 | 布尔值 | 假 |
| 允许创建 | 是否允许创建新项目。要使用此功能,filterable 必须为 true | 布尔值 | 假 |
| 过滤方法 | 自定义过滤方法,第一个参数是当前输入值。要使用此方法,filterable 必须是 true 方法 | 功能 | — |
| 加载 | Select 是否正在从服务器加载数据 | 布尔值 | 假 |
| 加载文本 | 从服务器加载数据时显示的文本,默认为“正在加载” | 字符串 | — |
| 保留关键字 | 选择过滤选项后是否保留关键字。 | 布尔值 | 真实 |
| 默认第一选项 | 按 Enter 键选择第一个匹配选项。与 filterable 或 remote 一起使用 | 布尔值 | 假 |
| 不匹配文本 | 当没有数据与过滤查询匹配时显示的文本,也可以使用插槽empty,默认为'无匹配数据' | 字符串 | — |
| 无数据文本 | 没有选项时显示的文本,也可以使用 slot empty | 字符串 | 没有数据 |
| 波普尔级 | Select 下拉列表和标签工具提示的自定义类名称 | 字符串 / 对象 | '' |
| 波普风格 2.11.0 | 选择下拉菜单和标签工具提示的自定义样式 | 字符串 / 对象 | — |
| 追加到 2.8.8 | 选择下拉列表附加到哪个元素 | CSS选择器 / HTMLElement | — |
| 执着 | 当选择下拉列表处于非活动状态且 persistent 为 false 时,选择下拉列表将被销毁 | 布尔值 | 真实 |
| 自动下拉 | 对于不可过滤的 Select,此属性决定当输入聚焦时是否弹出选项菜单 | 布尔值 | 假 |
| 后缀图标 2.9.8 | 自定义后缀图标组件 | 字符串 / 对象 | 向下箭头 |
| 高度 | 下拉面板高度,每一项默认 34px | 数字 | 274 |
| 项目高度 | 下拉项高度 | 数字 | 34 |
| 估计选项高度 | 控制虚拟列表大小调整模式:如果未定义,则列表使用 item-height 中的固定项目高度;如果提供,列表将使用动态项目大小调整,并将该值作为估计的项目高度。 | 数字 | — |
| 滚动条始终开启 | 控制滚动条是否始终显示 | 布尔值 | 假 |
| 远程 | 是否从服务器检索数据 | 布尔值 | 假 |
| 去抖 2.11.7 | 远程搜索期间的去抖延迟(毫秒) | 数字 | 300 |
| 远程方法 | 当输入值改变时调用的函数。其参数为当前输入值。要使用此功能,filterable 必须为 true | 功能 | — |
| 远程显示后缀 2.11.9 | 在远程搜索方法中显示后缀图标 | 布尔值 | 假 |
| 验证事件 | 是否触发表单验证 | 布尔值 | 真实 |
| 折叠标签工具提示 2.3.0 | 点击折叠标签摘要时是否显示所有选定的标签。要使用此功能,collapse-tags 必须为 true | 布尔值 | 假 |
| 标签工具提示 2.13.3 | 折叠标签工具提示的配置对象。要使用此功能,collapse-tags 和 collapse-tags-tooltip 必须为 true | 对象 | {} |
| 最大折叠标签 2.3.0 | 要显示的最大标签数。要使用此功能,collapse-tags 必须为 true | 数字 | 1 |
| 标签类型 2.5.0 | 标签类型 | 枚举 | 信息 |
| 标签效果 2.7.7 | 标签效果 | 枚举 | 光 |
| 咏叹调标签 a11y 2.5.0 | 与本机输入中的 aria-label 相同 | 字符串 | — |
| 空值 2.7.0 | 组件的空值,参见配置提供程序 | 数组 | — |
| 清除值 2.7.0 | 清除返回值,参见配置提供程序 | 字符串 / 数字 / 布尔值 / 函数 | — |
| 选项卡索引 2.9.0 | 输入的 tabindex | 字符串 / 数字 | — |
道具
| 属性 | 描述 | 类型 | 默认 |
|---|---|---|---|
| 价值 | 指定节点对象的哪个键用作节点的值 | 字符串 | 价值 |
| 标签 | 指定节点对象的哪个键用作节点的标签 | 字符串 | 标签 |
| 选项 | 指定节点对象的哪个键用作节点的子节点 | 字符串 | 选项 |
| 已禁用 | 指定节点对象的哪个键用作节点的禁用 | 字符串 | 已禁用 |
标签工具提示 2.13.3
回退机制
tag-tooltip 中的属性遵循以下优先顺序:
- 标签工具提示对象中显式定义的字段。
- 从
el-select-v2继承的共享属性,例如effect、popper-class、popper-style。 - 底层
el-tooltip组件的默认值。
这允许您覆盖标签工具提示的局部行为,同时保持与默认下拉层一致的基础表现。
| 属性 | 描述 | 类型 | 默认 |
|---|---|---|---|
| 效果 | 工具提示主题,内置主题:dark / light | 枚举 / 字符串 | — |
| 波普尔级 | 工具提示弹出器的自定义类名 | 字符串 | — |
| 波普风格 | 工具提示弹出窗口的自定义样式 | 字符串 / 对象 | — |
| 过渡 | 动画名称 | 字符串 | — |
| 后显示 | 出现延迟,以毫秒为单位 | 数字 | — |
| 隐藏后 | 消失延迟,以毫秒为单位 | 数字 | — |
| 自动关闭 | 隐藏工具提示的超时时间(毫秒) | 数字 | — |
活动
| 名称 | 描述 | 类型 |
|---|---|---|
| 改变 | 当选定值改变时触发,参数为当前选定值 | 功能 |
| 可见变化 | 当下拉菜单出现/消失时触发,出现时参数为 true,否则为 false | 功能 |
| 删除标签 | 多种模式下移除标签时触发,参数为移除标签值 | 功能 |
| 清除 | 在可清除的 Select 中单击清除图标时触发 | 功能 |
| 模糊 | 当输入模糊时触发 | 功能 |
| 焦点 | 当输入聚焦时触发 | 功能 |
插槽
| 名称 | 描述 | 类型 |
|---|---|---|
| 默认 | 选项渲染器 | — |
| 标头 2.5.2 | 下拉菜单顶部的内容 | — |
| 页脚 2.5.2 | 下拉菜单底部的内容 | — |
| 空 | 选项为空时的内容 | — |
| 前缀 | 输入的前缀内容 | — |
| 标签 2.5.0 | 作为 Select 标签的内容。data、selectDisabled 和 deleteTag 在 2.10.3 中引入。 | 对象 |
| 加载 2.5.2 | 内容为 选择加载 | — |
| 标签 2.7.4 | 作为选择标签的内容。index 在 2.11.2 中引入。 | 对象 |
暴露
| 名称 | 描述 | 类型 |
|---|---|---|
| 焦点 | 聚焦输入组件 | 功能 |
| 模糊 | 模糊输入组件,并隐藏下拉菜单 | 功能 |
| 选定标签 2.8.5 | 获取当前选择的标签 | 对象 |