Перейти до вмісту
tatetUI

Combobox

Async-пошук без локальної фільтрації — компонент показує рівно те, що дійшло з сервера.

Відмінність від Select принципова: Select фільтрує свій статичний список локально, Combobox — НІ. Панель показує рівно те, що споживач поклав в options. Подвійна фільтрація (тут + сервером) ховала б валідні матчі, які сервер знайшов за іншим полем.

Приклад

Обрано: —

API

Props

НазваТипТиповоОпис
options*ComboboxOption[]Поточні варіанти. Компонент їх НЕ фільтрує: список приходить із сервера у відповідь на подію `search`.
modelValuestring | numberОбране значення. Використовуйте через `v-model`.
labelstring
placeholderstring"Пошук…"
sizeFieldSize"md"Висота поля. На мобільному кожен розмір вищий за десктопний.
errorstringТекст помилки. Сама його наявність вмикає стан помилки.
hintstringПідказка під полем. Ховається, коли показано помилку.
namestring
minCharsnumber0Не емітити `search`, доки запит коротший. 0 — емітити все.
idstringСтабільний DOM id. `name` використовується лише для форми.
disabledbooleanfalse
requiredboolean
loadingbooleanfalseКерований стан завантаження — панель показує «Завантаження…».
clearablebooleantrueДозволяє скинути вибір хрестиком.

Події

НазваPayloadОпис
update:modelValue[value: string | number]Обране значення або `null`, якщо вибір скинуто.
search[query: string]Введений текст. Споживач дебаунить і фетчить сам.

Слоти

НазваОпис
optionВласний рендер пункту списку.

Доступно через ref

НазваТипОпис
focus() => voidСтавить фокус на поле.

Коли використовувати

Вибір з ВЕЛИКИХ або віддалених наборів: користувачі, групи, моделі, міста. minChars береже сервер від пошуку по одній букві.

Коли НЕ використовувати

Для статичного списку на 5–50 пунктів потрібен Select: локальна фільтрація миттєва й не коштує запитів.

Для мультивибору є MultiSelect.

Доступність

Той самий ARIA-комбобокс, що в Select: role="combobox", aria-autocomplete="list", панель — listbox, пункти — option з aria-selected. Escape закриває панель і не «протікає» в модалку навколо.

Стан завантаження замінює шеврон спінером і показує «Завантаження…» в панелі — користувач розуміє, що пошук живий, а не зламався.