javascript42
Главная
Все учебники
Блог
Учебник Slim Select
Введение
Что такое Slim Select
История создания и развитие
Преимущества перед нативным select
Сравнение с аналогами
Требования к окружению
Поддержка браузеров
Установка и подготовка
Установка через npm
Установка через yarn
Подключение через CDN
Загрузка и локальное использование
Структура файлов библиотеки
Подключение стилей
Проверка корректности установки
Быстрый старт
Минимальная инициализация
Базовая HTML-разметка
Создание первого экземпляра
Стандартные опции по умолчанию
Простейшие примеры использования
Основы работы с библиотекой
Инициализация элемента select
Синтаксис создания экземпляра
Выбор элемента для инициализации
Множественная инициализация
Уничтожение экземпляра
Повторная инициализация
Конфигурация
Объект настроек
Параметр select
Параметр data
Параметр showSearch
Параметр searchPlaceholder
Параметр searchText
Параметр searchingText
Параметр searchHighlight
Параметр closeOnSelect
Параметр showContent
Параметр placeholderText
Параметр allowDeselect
Параметр allowDeselectOption
Параметр hideSelectedOption
Параметр deselectLabel
Параметр isEnabled
Параметр valuesUseText
Параметр showOptionTooltips
Параметр selectByGroup
Параметр limit
Параметр timeoutDelay
Параметр addToBody
Параметр contentLocation
Параметр contentPosition
Полный список параметров
Работа с данными
Формат данных
Структура объекта option
Обязательные поля
Необязательные поля
Работа с группами optgroup
Динамическое добавление опций
Удаление опций
Обновление данных
Массовые операции с данными
Валидация входящих данных
Одиночный выбор
Настройка одиночного select
Работа с placeholder
Получение выбранного значения
Программная установка значения
Сброс выбора
Блокировка опций
Отключение опций
Множественный выбор
Инициализация multiple select
Отображение выбранных элементов
Ограничение количества выбранных
Работа с множественными значениями
Добавление и удаление значений
Очистка всех выбранных
Получение массива выбранных значений
Валидация множественного выбора
Поиск и фильтрация
Включение поиска
Настройка поля поиска
Алгоритм поиска
Кастомизация логики поиска
Подсветка результатов
Работа с диакритическими знаками
Поиск по группам
Производительность при большом объеме данных
Регистрозависимый поиск
Настройка сообщений при поиске
События
Система событий
Событие beforeChange
Событие afterChange
Событие beforeOpen
Событие afterOpen
Событие beforeClose
Событие afterClose
Событие error
Подписка на события
Отписка от событий
Множественная подписка
Всплытие событий
Объект события
Методы API
Метод getData
Метод setData
Метод getSelected
Метод setSelected
Метод addData
Метод open
Метод close
Метод search
Метод enable
Метод disable
Метод destroy
Доступ к методам экземпляра
Цепочки вызовов
Стилизация
Структура DOM
Классы элементов
Переопределение стилей
Работа с CSS-переменными
Темная тема
Адаптивность
Мобильная версия
Кастомные темы
Анимации и переходы
Иконки и символы
Шаблоны и кастомизация вывода
Шаблон option
Шаблон выбранного значения
Шаблон группы
HTML в опциях
Изображения в опциях
Иконки в опциях
Форматирование текста
Кастомные атрибуты
Доступ к данным в шаблонах
Валидация и обработка ошибок
Встроенная валидация
Проверка формата данных
Обработка некорректных данных
Отображение ошибок
Интеграция с валидацией форм
HTML5 валидация
Кастомные правила валидации
Доступность
ARIA-атрибуты
Навигация с клавиатуры
Поддержка скринридеров
Фокус и табуляция
Семантическая разметка
Контрастность и читаемость
Стандарты WCAG
Производительность
Оптимизация при большом количестве опций
Виртуализация списка
Ленивая загрузка
Debounce и throttle
Оптимизация рендеринга
Профилирование производительности
Рекомендации по оптимизации
Интеграция с фреймворками
Использование с vanilla JavaScript
Интеграция с React
Интеграция с Vue
Интеграция с Angular
Интеграция с Svelte
Работа с jQuery
SSR и рендеринг на сервере
Работа с формами
Отправка данных формы
Сериализация значений
Программная отправка
Валидация перед отправкой
Обработка на сервере
FormData API
Динамические формы
Ajax и асинхронная загрузка
Загрузка опций с сервера
Динамическое обновление данных
Обработка запросов
Индикация загрузки
Обработка ошибок загрузки
Кеширование результатов
Пагинация результатов
Бесконечная прокрутка
Продвинутые техники
Каскадные выпадающие списки
Зависимые селекты
Условная видимость опций
Динамическое изменение конфигурации
Программное управление состоянием
Синхронизация нескольких экземпляров
Сохранение состояния в localStorage
Работа с URL-параметрами
Локализация и интернационализация
Настройка языка интерфейса
Перевод текстов
Форматирование под локаль
Множественные языки
RTL-языки
Динамическая смена языка
Отладка и тестирование
Режим отладки
Логирование событий
Инспекция состояния
Юнит-тестирование
Интеграционное тестирование
E2E тестирование
Типичные проблемы и решения
Миграция и обновление
Миграция с других библиотек
Обновление версий
Изменения в API
Обратная совместимость
Deprecation warnings
Стратегия миграции
Расширение функциональности
Архитектура плагинов
Создание плагинов
Хуки и точки расширения
Регистрация плагинов
Популярные плагины
Публикация плагинов
Безопасность
XSS и защита от инъекций
Санитизация входных данных
Экранирование HTML
CSP политики
Безопасная работа с пользовательским контентом
Лучшие практики
Архитектурные подходы
Организация кода
Переиспользование конфигураций
Работа с большими наборами данных
UX рекомендации
Типичные антипаттерны
Чеклист реализации
Справочник API
Полный список методов
Полный список событий
Типы данных
Константы и перечисления