Slim Select инициализируется через создание экземпляра, который
связывается с существующим HTML-элементом <select> и
преобразует его в управляемый компонент с расширенными возможностями:
поиск, кастомные рендеры, множественный выбор, управление состоянием и
динамическое обновление списка опций.
Перед подключением библиотеки требуется стандартный элемент формы:
<select id="basic-select">
<option value="js">JavaScript</option>
<option value="ts">TypeScript</option>
<option value="py">Python</option>
</select>
Slim Select работает именно с нативным <select>,
не заменяя его логически, а оборачивая и синхронизируя состояние.
Перед созданием экземпляра необходимо подключить сам Slim Select и стили:
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/slim-select@latest/dist/slimselect.css">
<script src="https://cdn.jsdelivr.net/npm/slim-select@latest/dist/slimselect.min.js"></script>
После загрузки скрипта в глобальной области становится доступен
конструктор SlimSelect.
Инициализация выполняется через вызов конструктора с передачей конфигурационного объекта:
new SlimSelect({
select: '#basic-select'
});
Ключевой параметр select указывает CSS-селектор элемента
<select>, который будет преобразован. В момент
выполнения создаётся новый экземпляр, а оригинальный элемент связывается
с виртуальным представлением компонента.
При создании экземпляра происходит несколько внутренних операций:
<select>Нативный <select> при этом сохраняется в DOM, но
становится скрытым или визуально деактивированным, в зависимости от
конфигурации.
При минимальной инициализации Slim Select использует значения по умолчанию:
<option> используются как источник
данныхПример:
new SlimSelect({
select: '#basic-select'
});
Такой вызов создаёт полностью рабочий компонент без дополнительной настройки.
Каждый <option> преобразуется во внутреннюю
структуру:
value — идентификатор значенияtext — отображаемый текстselected — текущее состояние выбораdisabled — состояние доступностиЭти данные становятся основой для всех операций: фильтрации, отображения, выбора и программного управления.
После инициализации библиотека синхронизирует текущее значение
<select> с внутренним состоянием. Если у элемента
задан selected:
<option value="js" selected>JavaScript</option>
то Slim Select автоматически отразит это состояние в интерфейсе.
Оригинальный <select> не удаляется из DOM. Вместо
этого он:
Поверх него строится новый DOM-блок, содержащий интерфейс выбора.
Созданный объект можно рассматривать как инкапсулированный компонент:
const selectInstance = new SlimSelect({
select: '#basic-select'
});
Экземпляр хранит:
Каждый вызов конструктора создаёт независимый экземпляр:
new SlimSelect({ select: '#select-1' });
new SlimSelect({ select: '#select-2' });
Каждый компонент управляет собственным состоянием и не пересекается с другими, даже если данные идентичны.
При создании экземпляра возможны типичные ошибки:
<select>Корректная инициализация требует наличия элемента в момент вызова конструктора.
<select id="language-select">
<option value="js">JavaScript</option>
<option value="ts">TypeScript</option>
<option value="go">Go</option>
</select>
<script>
new SlimSelect({
select: '#language-select'
});
</script>
В этом случае создаётся базовый интерактивный компонент, полностью управляемый библиотекой Slim Select и синхронизированный с нативной формой.