Предисловие
О чем эта книга
Соглашения, используемые в книге
Использование
примеров кода
Благодарности
Об авторе
Глава 1. Hello World
Установка
Привет, мир React
Так что же сейчас произошло
React.DOM
Специальные DOM-атрибуты
Расширение браузера React DevTools
Далее: настраиваемые компоненты
Глава 2. Жизнь компонента
Самый минимум
Свойства
propTypes
Состояние
Компонент textarea, отслеживающий свое состояние
Немного о DOM-событиях
Обработка событий в прежние времена
Обработка событий в React
Сравнение свойств и состояния
Свойства в исходном состоянии: антишаблон
Доступ к компоненту извне
Изменение свойств на лету
Методы управления жизненным циклом
Примеры управления жизненным циклом
Тотальная регистрация
Использование примеси
Применение дочернего компонента
Выигрыш в производительности: предотвращение обновлений компонентов
PureRenderMixin
Глава 3. Excel: необычный табличный компонент....
Начнем с данных
Цикл создания заголовков таблицы
Отладка для избавления от консольного предупреждения .
Добавление содержимого <td>
Сортировка
Создание индикации сортировки в пользовательском интерфейсе
Редактирование данных
Редактируемая ячейка
Поле ввода ячейки
Сохранение
Выводы и определение различий в виртуальной
DOM-модели
Поиск
Состояние и пользовательский интерфейс
Фильтрация содержимого
Как можно усовершенствовать поиск?
Мгновенное воспроизведение
Как можно усовершенствовать воспроизведение?
А возможна ли альтернативная реализация?
Скачивание данных таблицы
Глава 4. JSX
Привет, JSX
Транспиляция JSX
Babel
Клиентская сторона
О преобразовании JSX
JavaScript в JSX
Пробельные символы в JSX
Комментарии в JSX
Элементы HTML
Анти-XSS
Распространяемые атрибуты
Возвращение в JSX нескольких узлов
Отличия JSX от HTML
Просто class использовать нельзя, а как насчет for?
style является объектом
Закрывающие теги
Атрибуты в "верблюжьем" регистре
JSX и формы
Обработчик события onChange
Сравнение value и defaultValue
Значение компонента <textarea>
Значение компонента <select>
Компонент Excel в JSX
Глава 5. Настройки для разработки приложения
Типовое приложение
Файлы и папки
index.html
CSS
JavaScript
JavaScript: модернизированный код
Установка обязательных инструментальных
Node.js
Browserify
Babel
React и прочие
Займемся сборкой
Транспиляция JavaScript
Создание пакета JavaScript
Создание пакета CSS
Результаты!
Версия для Windows
Сборка в процессе разработки
Развертывание
Идем дальше
Глава 6. Создание приложения
Whinepad v.0.0.1
Подготовка к работе
Приступим к программированию
Компоненты
Настройка
Исследование
Компонент <Button>
Button.css
Button.js
Формы
Компонент <Suggest>
Компонент <Rating>
Компонент <FormInput>
Компонент <Form>
Компонент <Actions>
Диалоги
Настройка приложения
< Excel>: новый и усовершенствованный
Компонент <Whinepad>
Подведение итогов
Глава 7. Проверка качества кода, соответствия типов, тестирование, повтор package.json
Настройка Babel
Сценарии
Средство ESLint
Установка
Запуск
Все правила
Средство Flow
Установка
Запуск
Подписка на проверку соответствия типов
Исправление кода компонента <Button>
app.js
Подробнее о проверке соответствия типов свойств и состояния
Типы экспорта и импорта
Приведение типов
Инварианты
Тестирование
Установка
Первый тест
Первый React-тест
Тестирование компонента <Button>
Тестирование компонента <Actions>
Дополнительные имитируемые взаимодействия
Тестирование полного взаимодействия
Полнота охвата
Глава 8. Flux
Основной замысел
Иной взгляд на Whinepad
Хранилище
События хранилища
Использование хранилища в <Whinepad>
Использование хранилища в <Ехсеl>
Использование хранилища в <Form>
Где провести границу?
Действия
CRUD-действия
Поиск и сортировка
Использование действий в <Whinepad>
Использование действий в компоненте <Ехсеl>
И еще немного о Flux
Библиотека immutable
Хранилище данных при использовании библиотеки immutable
Работа с данными при использовании библиотеки immutable
Добавить комментарий