javascript42
Главная
Все учебники
Блог
Учебник Riot.js
Введение в Riot.js
История создания и философия фреймворка
Сравнение с другими JavaScript фреймворками
Принципы минималистичного подхода к разработке
Экосистема Riot.js и её место в современном веб-разработке
Системные требования и совместимость
Установка и первоначальная настройка окружения
Основы синтаксиса и архитектуры
Структура Riot приложения
Концепция компонентов и их жизненный цикл
Синтаксис шаблонов и выражения
Директивы и условная отрисовка
Циклы и итерация данных
Обработка событий и связывание данных
Область видимости переменных в компонентах
Создание и управление компонентами
Определение пользовательских тегов
Атрибуты и свойства компонентов
Вложенные компоненты и композиция
Слоты и проекция контента
Миксины и переиспользование логики
Наследование компонентов
Динамическое создание компонентов
Работа с данными и состоянием
Реактивность и односторонняя привязка данных
Управление состоянием компонента
Передача данных между компонентами
Паттерны для глобального состояния
Обработка асинхронных операций
Кэширование и оптимизация данных
Валидация и трансформация данных
События и взаимодействие с пользователем
Система событий Riot.js
Пользовательские события
Делегирование событий
Обработка событий клавиатуры и мыши
Touch-события и мобильная разработка
Управление фокусом и доступностью
Предотвращение событий по умолчанию
Маршрутизация и навигация
Принципы клиентской маршрутизации
Riot Route - встроенный роутер
Определение маршрутов и параметров
Программная навигация
Защищённые маршруты и аутентификация
История браузера и back/forward навигация
Обработка ошибок маршрутизации
Стилизация и CSS
Инкапсуляция стилей в компонентах
Scoped CSS и изоляция стилей
Условная стилизация
CSS-модули в контексте Riot.js
Препроцессоры CSS и интеграция
Темизация и CSS переменные
Анимации и переходы
HTTP запросы и работа с API
Встроенные возможности для AJAX
Интеграция с Fetch API и XMLHttpRequest
Работа с REST API и GraphQL
Обработка ошибок HTTP запросов
Кэширование запросов
Загрузка данных и индикаторы прогресса
Polling и WebSocket соединения
Формы и валидация
Создание интерактивных форм
Двустороннее связывание данных в формах
Валидация пользовательского ввода
Кастомные элементы форм
Обработка файлов и загрузка
Динамические формы и поля
Интернационализация форм
Производительность и оптимизация
Профилирование Riot.js приложений
Виртуальный DOM и алгоритмы обновления
Оптимизация рендеринга компонентов
Ленивая загрузка компонентов
Мемоизация и кэширование
Bundle splitting и code splitting
Оптимизация для мобильных устройств
Тестирование Riot.js приложений
Стратегии тестирования компонентов
Unit тестирование с Jest и Mocha
Интеграционное тестирование
End-to-end тестирование
Мокирование зависимостей
Тестирование событий и взаимодействий
Snapshot тестирование компонентов
Инструменты разработки и отладка
Настройка среды разработки
Hot Module Replacement и live reload
Отладка с помощью браузерных инструментов
Riot Developer Tools
Source maps и отладка скомпилированного кода
Профилирование производительности
Анализ размера бандла
Сборка и развёртывание
Системы сборки: Webpack, Rollup, Vite
Компиляция Riot компонентов
Минификация и оптимизация кода
Управление зависимостями
Continuous Integration и автоматизация
Развёртывание в различных окружениях
Обновления и миграции приложений
Серверный рендеринг (SSR)
Принципы серверного рендеринга
Настройка SSR для Riot.js
Изоморфные приложения
SEO оптимизация
Гидратация на клиенте
Обработка ошибок при SSR
Кэширование серверного контента
Прогрессивные веб-приложения (PWA)
Концепции PWA в контексте Riot.js
Service Workers и кэширование
Offline функциональность
Push уведомления
Web App Manifest
Установка PWA на устройства
Оптимизация для мобильных платформ
Интеграция с внешними библиотеками
Подключение jQuery и других DOM библиотек
Интеграция с D3.js для визуализации данных
Работа с картографическими библиотеками
Chart.js и другие библиотеки графиков
Анимационные библиотеки
UI компоненты третьих сторон
Полифиллы и совместимость
Расширенные концепции и паттерны
Функциональное программирование в Riot.js
Реактивные паттерны и RxJS
Dependency Injection
Observer и Publisher-Subscriber паттерны
Командный паттерн для обработки действий
Стратегия и фабричные паттерны
Безопасность веб-приложений
XSS защита в Riot.js
CSRF и методы защиты
Content Security Policy
Sanitization пользовательских данных
Аутентификация и авторизация
Безопасная работа с токенами
Защита от инъекций кода
Интернационализация и локализация
Многоязычные приложения на Riot.js
Управление переводами и локализацией
Форматирование дат, чисел и валют
Right-to-left языки и вёрстка
Динамическая загрузка языковых пакетов
Плюрализация и контекстные переводы
Тестирование многоязычных приложений
Доступность (Accessibility)
Принципы веб-доступности в SPA
ARIA атрибуты и семантика
Навигация с клавиатуры
Screen readers и вспомогательные технологии
Цветовой контраст и визуальная доступность
Тестирование доступности
Автоматизация проверок a11y
Мигрирование и обновления
Миграция с jQuery к Riot.js
Переход с других фреймворков
Стратегии постепенной миграции
Совместимость версий Riot.js
Обновление зависимостей
Рефакторинг legacy кода
Планирование миграционных проектов
Масштабирование приложений
Архитектура крупных Riot.js приложений
Микрофронтенды и модульная архитектура
Управление состоянием в больших проектах
Lazy loading и динамический импорт
Кэширование на различных уровнях
Мониторинг производительности
Стратегии развёртывания больших приложений
Будущее Riot.js и веб-разработки
Эволюция JavaScript фреймворков
Web Components и стандартизация
WebAssembly и производительность
Тренды в пользовательских интерфейсах
Влияние новых браузерных API
Экосистема JavaScript и её развитие
Перспективы развития Riot.js