Параметр searchText

Параметр searchText в Slim Select отвечает за начальное текстовое значение строки поиска внутри выпадающего списка. Он используется в случаях, когда компонент инициализируется с включённой функцией поиска и требуется задать уже предзаполненное значение, влияющее на фильтрацию элементов.

Фактически searchText является связующим звеном между состоянием UI и внутренним механизмом фильтрации, позволяя управлять тем, какой текст уже введён в поисковую строку в момент создания экземпляра.

Ключевые особенности:

  • задаёт начальное значение строки поиска;
  • влияет на отображаемый список опций при инициализации;
  • используется только при активированном поиске;
  • не изменяет исходные данные, а только состояние фильтра.

Базовое поведение searchText

При создании экземпляра Slim Select компонент может находиться в состоянии, когда поле поиска уже содержит значение. В этом случае searchText подставляется в input-элемент поиска до первого взаимодействия пользователя.

Логика работы:

  • инициализация компонента;
  • проверка включённого поиска;
  • применение searchText к внутреннему input;
  • запуск фильтрации опций на основе переданного текста.

Если searchText не указан, поле поиска остаётся пустым, а список отображает все доступные элементы (или их отфильтрованную версию, если заданы другие параметры).


Синтаксис и передача значения

Передача параметра осуществляется через объект конфигурации при создании экземпляра Slim Select.

new SlimSelect({
  select: '#mySelect',
  searchText: 'Москва'
});

В данном случае:

  • строка поиска будет заполнена значением "Москва";
  • список опций сразу отфильтруется по этому значению;
  • пользователь увидит уже ограниченный набор элементов.

Влияние на фильтрацию данных

searchText напрямую взаимодействует с механизмом поиска Slim Select. Внутри библиотеки реализована строковая фильтрация, которая сопоставляет введённый текст с доступными опциями.

Алгоритм поведения:

  • получение списка всех option-элементов;
  • нормализация текста поиска;
  • сравнение с текстом каждой опции;
  • отображение совпадающих элементов.

При наличии searchText этот процесс запускается автоматически до первого ввода пользователя.

Особенность заключается в том, что:

  • фильтрация происходит синхронно при инициализации;
  • результат может скрыть значительную часть списка;
  • пользователь видит уже «суженный» набор данных.

Отличие от параметра searchPlaceholder

searchText часто путают с searchPlaceholder, однако их поведение принципиально различается.

searchText

  • задаёт фактическое значение input;
  • участвует в фильтрации;
  • влияет на отображаемые опции;
  • считается активным вводом.

searchPlaceholder

  • задаёт подсказку внутри пустого поля;
  • не участвует в фильтрации;
  • исчезает при любом вводе;
  • не влияет на состояние списка.

Таким образом, searchText — это состояние, а searchPlaceholder — только визуальная подсказка.


Поведение при динамической инициализации

При создании Slim Select в динамическом сценарии (например, после загрузки данных) searchText может использоваться для предустановки контекста поиска.

Пример типового сценария:

  • данные загружаются с сервера;
  • создаётся select-элемент;
  • Slim Select инициализируется с searchText;
  • список сразу отображает релевантные элементы.

Это особенно полезно в интерфейсах с:

  • предварительной фильтрацией по пользователю;
  • сохранением состояния поиска;
  • автоматическим восстановлением предыдущего ввода.

Взаимодействие с множественным выбором

При использовании multi-select режимов searchText влияет только на поиск, но не на выбранные значения.

Особенности:

  • выбранные элементы остаются неизменными;
  • фильтрация применяется только к списку доступных опций;
  • уже выбранные значения не исчезают из состояния компонента.

Таким образом, searchText не затрагивает модель выбранных данных, а работает исключительно на уровне отображения.


Поведение при очистке и изменении состояния

После инициализации значение searchText становится частью внутреннего состояния input-поля. При дальнейшем взаимодействии пользователя оно заменяется новым вводом.

Ключевые моменты:

  • при вводе нового текста старое значение перезаписывается;
  • при очистке input список возвращается к исходному состоянию (или к состоянию других фильтров);
  • программное изменение значения searchText после инициализации обычно не применяется автоматически и требует переинициализации компонента.

Ограничения и особенности реализации

Использование searchText имеет ряд ограничений, связанных с архитектурой Slim Select:

  • параметр работает только при создании экземпляра;
  • не предназначен для реактивного обновления;
  • зависит от включённой функциональности поиска;
  • может конфликтовать с кастомными фильтрами, если они переопределяют стандартную логику.

Также важно учитывать, что:

  • слишком длинные строки поиска могут замедлить первичную фильтрацию при больших списках;
  • регистронезависимое сравнение может влиять на ожидаемые результаты;
  • локализация текста опций влияет на релевантность начальной фильтрации.

Применение в интерфейсных сценариях

searchText используется в интерфейсах, где требуется заранее подготовленное состояние поиска.

Типовые случаи:

  • восстановление фильтра после перезагрузки страницы;
  • предустановка популярного или последнего запроса;
  • автоматическая фильтрация на основе внешних параметров;
  • синхронизация с URL-параметрами или состоянием приложения.

В таких сценариях Slim Select выступает не только как UI-компонент, но и как визуальный слой для отображения уже вычисленного фильтрационного состояния.