Принципы Flux

Однонаправленный поток данных

Определяющей характеристикой Flux является то, что данные передаются в одном направлении. Вы можете представить себе данные, проходящие серию преобразований, действий и сохранений, прежде чем они достигнут своего конечного пункта назначения, представления.

В магазинах нет сеттеров

В хранилищах Flux нет доступных прямых методов установки, что означает, что вы можете изменять состояние только через центральный диспетчер. Это приводит к простой ментальной модели того, как манипулируют состоянием и где оно инициируется. Все изменения состояния начинаются с отправленного действия.

Инверсия контроля

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

Единый центральный диспетчер

Существует центральный диспетчер, который обеспечивает одновременное прохождение только одного события отправки. Осуществляя только одну отправку за раз, вы исключаете возможность возникновения каскадных событий. Это упрощает понимание того, что именно происходит, когда вы отправляете действие.

Все магазины получают отправку

Каждый магазин имеет доступ к диспетчеру и может принимать каждое действие. Благодаря тому, что все хранилища получают каждое действие, мы получаем гибкость в настройке зависимостей между хранилищами при работе с производными данными. Диспетчер Flux должен предоставить механизм для обработки этого в хранилище.

Учебные ресурсы

Спасибо Биллу Фишеру и Дэну Абрамову за чтение черновика этого сообщения.