javascript42
Главная
Все учебники
Блог
Учебник Stimulus
Введение в Stimulus Framework
История создания и философия фреймворка
Сравнение с другими JavaScript фреймворками
Теоретические основы
Концепция прогрессивного улучшения
Паттерн контроллеров в веб-приложениях
Принципы работы с DOM без виртуализации
Декларативное программирование в контексте Stimulus
Обзор архитектурного паттерна MVC в веб-контексте
Фундаментальные концепции
Контроллеры: определение и жизненный цикл
Таргеты: привязка элементов DOM
Действия: обработка событий и пользовательских взаимодействий
Значения: управление состоянием контроллера
Классы: динамическое управление CSS-классами
Выходы: межконтроллерное взаимодействие
Настройка рабочей среды
Установка через npm и yarn
Интеграция с Ruby on Rails
Настройка с Webpack и другими сборщиками
Конфигурация TypeScript
Интеграция с существующими проектами
Настройка среды разработки и отладки
Создание базовых контроллеров
Структура и синтаксис контроллера
Регистрация контроллеров в приложении
Базовые методы жизненного цикла
Обработка ошибок в контроллерах
Соглашения по именованию и организации кода
Работа с таргетами
Определение и использование таргетов
Статические и динамические таргеты
Множественные таргеты и коллекции
Опциональные таргеты и проверка существования
Таргеты в сложных DOM-структурах
Производительность при работе с большим количеством таргетов
Система действий
Синтаксис определения действий
События по умолчанию для различных элементов
Пользовательские события и их обработка
Модификаторы действий
Предотвращение всплытия и отмена действий по умолчанию
Асинхронные действия и Promise
Управление значениями
Типы значений и их валидация
Реактивность и отслеживание изменений
Значения по умолчанию
Преобразование типов данных
Значения как props для контроллеров
Связывание значений с формами
Динамическое управление CSS-классами
Определение и применение классов
Условное применение классов
Анимации и переходы через классы
Классы для состояний элементов
Интеграция с CSS-фреймворками
Межконтроллерное взаимодействие
Система выходов (outlets)
Коммуникация между контроллерами
Шаблоны взаимодействия контроллеров
Иерархии контроллеров
События приложения и глобальное состояние
Жизненный цикл контроллеров
Методы initialize, connect и disconnect
Порядок выполнения методов
Очистка ресурсов и предотвращение утечек памяти
Реинициализация и динамическое добавление контроллеров
Отладка жизненного цикла
Работа с формами
Обработка отправки форм
Валидация на клиентской стороне
Динамическое изменение полей форм
Автосохранение и черновики
Файловые загрузки
Интеграция с серверной валидацией
AJAX и асинхронные запросы
Интеграция с fetch API
Обработка ответов сервера
Загрузочные состояния и индикаторы прогресса
Обработка ошибок HTTP
Отмена запросов и управление состоянием
Кэширование ответов
Работа с турбо-навигацией
Интеграция с Turbo Drive
Контроллеры и навигация по SPA
Управление состоянием при переходах
Сохранение данных между страницами
Prefetch и предзагрузка ресурсов
Анимации и визуальные эффекты
CSS-анимации через Stimulus
JavaScript анимации в контроллерах
Библиотеки анимаций и их интеграция
Производительность анимаций
Анимации появления и исчезновения элементов
Тестирование контроллеров
Юнит-тестирование контроллеров
Интеграционные тесты с DOM
Тестирование асинхронного поведения
Моки и стабы для внешних зависимостей
Покрытие кода и метрики качества
Отладка и инструменты разработчика
Инструменты браузера для отладки
Логирование и трассировка выполнения
Профилирование производительности
Инспектирование состояния контроллеров
Распространенные ошибки и их решения
Производительность и оптимизация
Профилирование приложений на Stimulus
Оптимизация работы с DOM
Ленивая загрузка контроллеров
Минимизация количества слушателей событий
Управление памятью
Оптимизация для мобильных устройств
Архитектурные паттерны
Композиция контроллеров
Паттерн фасад для сложных взаимодействий
Медиатор для координации компонентов
Наблюдатель для реактивности
Стратегия для вариативного поведения
Декоратор для расширения функциональности
Интеграция с внешними библиотеками
Обертывание jQuery плагинов
Интеграция с D3.js для визуализации данных
Работа с картографическими библиотеками
Подключение UI-компонентов третьих сторон
Интеграция с WebSocket соединениями
Работа с Service Workers
Безопасность и лучшие практики
Предотвращение XSS атак
Валидация пользовательского ввода
Безопасная работа с innerHTML
CSP политики и Stimulus
Санитизация данных
Безопасность при работе с внешними API
Accessibility и инклюзивность
ARIA атрибуты в контроллерах
Управление фокусом
Поддержка скринридеров
Клавиатурная навигация
Семантическая разметка
Тестирование доступности
Интернационализация
Поддержка множественных языков
Локализация пользовательского интерфейса
Форматирование дат и чисел
RTL поддержка
Динамическая смена языков
Развертывание и продакшн
Сборка для продакшна
Минификация и оптимизация кода
Кэширование стратегии
Мониторинг ошибок в продакшне
Версионирование и обратная совместимость
Миграция и модернизация
Миграция с jQuery на Stimulus
Рефакторинг легаси кода
Совместимость с различными версиями
Стратегии миграции больших приложений
Расширение функциональности
Наследование контроллеров
Плагины и расширения для Stimulus
Создание переиспользуемых компонентов
Абстрактные контроллеры
Мониторинг и аналитика
Отслеживание пользовательского поведения
Метрики производительности
Ошибки и их анализ
A/B тестирование компонентов
Сбор обратной связи от пользователей
Современные веб-стандарты
Web Components и Stimulus
Custom Elements интеграция
Shadow DOM и инкапсуляция
ES модули и динамические импорты
Progressive Web Apps концепции
WebAssembly интеграция возможности