Компонент Dropdown является ключевым элементом интерфейсов, предоставляемым библиотекой Carbon Components Svelte, позволяя пользователям выбирать значения из списка опций. В Svelte его реализация базируется на реактивных свойствах и слоте для кастомизации.
Ключевые моменты:
items — массив объектов с обязательными свойствами
id и text.bind:value позволяет автоматически синхронизировать
выбранное значение с переменной.label задаёт заголовок поля для пользователя.Компонент поддерживает несколько режимов отображения:
theme.disabled={true}.Пример с расширенной конфигурацией:
Компонент поддерживает стандартные события Svelte:
on:change — срабатывает при выборе элемента.on:focus / on:blur — контроль фокуса для
кастомного поведения.Пример использования события change:
{
console.log("Выбран элемент:", event.detail);
}}
/>
Свойство event.detail содержит объект
выбранного элемента: { id, text }.
Carbon Components Svelte позволяет создавать расширенные меню, включая:
MultiSelect пример:
Grouped Dropdown пример:
Особенности группировки:
text и массив
items.Свойство type="inline" и реактивные переменные позволяют
создавать фильтруемые списки.
Особенности фильтрации:
$: filteredItems.С помощью слотов можно изменять внешний вид элементов списка:
{item.text}
Особенности кастомного рендеринга:
slot="item" позволяет использовать HTML и стили для
каждого элемента.let:item даёт доступ к объекту элемента списка.bind:value предотвращает лишние ререндеры
компонента.Dropdown легко интегрируется с формами Svelte и библиотеками валидации:
invalid и invalidText позволяют
отображать ошибки валидации.