uiUI 组件系统
对比

组合输入与自动补全

Combobox / Autocomplete

把可编辑文本和建议列表放在同一交互中。

交互预览实时预览

原生 datalist,允许自由输入

输入文字或选择浏览器建议
使用代码安装指南 ↗
app.mjs
import { mount } from '@sofish/ui/browser';

const view = mount(
  document.querySelector('#example'),
  'combobox'
);

view.element.addEventListener('ui:change', event => {
  console.log(event.detail.value);
});

// view.update({ ...nextProps });
// view.destroy();

什么时候用

从较大集合查找,或输入后选择一个对象。

什么时候不用

只需固定少量选项时,Select 更直接。

COMPONENT API

属性与事件

传入业务数据,通过事件连接你的应用。

属性默认值
label"输入或选择框架"
name"sample-framework"
value""
placeholder"例如 React"
options["React","Vue","Svelte","Solid"]
help"原生 datalist,允许自由输入"
disabledfalse
id—
attributes—
required—
readOnly—
min—
max—
step—
minLength—
maxLength—
autocomplete—

事件

ui:change

安装、生命周期与完整 API ↗

INTERACTION NOTES

交互与可访问性

  • 区分输入焦点与列表中活动项。
  • 说明是否允许列表外自由值。

和相似组件的区别

Combobox 可输入并显示建议;Select 的核心是从现有值中选择。

RESEARCH & ALTERNATIVES

官方实现映射

以下是上游生态对同类交互的实现。上方运行的是 UI 自己的组件。

React AriaComboBox
官方提供

提供输入、列表、选择及错误状态。

Headless UICombobox
官方提供

此映射为 React 文档;Vue API 另查。

Bits UICombobox
官方提供

Svelte 无样式输入与列表部件。

KobalteCombobox
官方提供

Solid 组合输入,样式由应用提供。

关键状态

输入中有建议无匹配已选择

React / Next.js、Svelte / SvelteKit、Solid · 来源核验

一起了解

选项选择器 ↗单行文本输入 ↗命令入口 ↗