Откройте для себя функциональный JavaScript был назван одним из Лучшие новые функциональные программирования книги BookAuthority Действительно
Flux является архитектурным рисунком, предложенным Facebook для строительства SPA. Он предлагает разделить приложение на следующие части:
- магазины
- Диспетчер
- Просмотры
- Действия/Действия Создатели
Магазин
Магазин управляет государством. Он может хранить как состояние домена, так и пользовательского интерфейса.
Магазин и штат – это разные концепции. Состояние – это значение данных. Хранить – это объект поведения, который управляет состоянием через методы. В случае управления книгами: список книг – это состояние и книжный магазин управляет этим списком.
Магазин управляет несколькими объектами. Это единственный источник правды в отношении этих конкретных объектов. В приложении могут быть много магазинов. Например: Bookstore, автором, авторский интернат.
В магазине нет меторов. Вы можете запросить только изменение состояния, передавая действие диспетчеру.
Магазин слушает все действия и решает, на кого из них действует. Это обычно означает Переключатель утверждение. Как только магазин сделает изменения состояния, он выделяет событие изменения. Магазин – это эмиттер событий.
Магазины не принимают другие магазины в качестве зависимостей.
Диспетчер
Dispatcher – это один объект, который передает действия/события для всех зарегистрированных магазинов. Магазины необходимо зарегистрироваться для событий, когда приложение запускается.
Когда происходит действие, он пройдет это действие на все зарегистрированные магазины.
Вид
Просмотр – это компонент пользовательского интерфейса. Он отвечает за оказание пользовательского интерфейса и для обработки взаимодействия пользователя. Виды находятся в древесной структуре.
Взгляды Слушайте изменения в магазине и повторно визуализации.
Представления могут быть дополнительно разделены в представлении презентации и контейнеров.
Представления представления не подключаются к диспетчеру или магазинам. Они общаются только через свои свойства.
Виды контейнеров подключены к магазинам и диспетчеру. Они слушают события из магазинов и предоставляют данные для компонентов презентации. Они получают новые данные, используя методы Getter Getter магазинов, а затем передают эти данные по дереву видов.
Контейнерные представления отправляют действия в ответ на итерацию пользователя.
Действия
Действие представляет собой простой объект, который содержит всю информацию, необходимую для этого действия.
Действия имеют Тип Свойство, идентифицирующее тип действия.
Как объекты действий перемещаются вокруг приложения, я предлагаю сделать их неизменными.
Действия могут приходить из разных мест. Они могут прийти от просмотров в результате взаимодействия пользователей. Они могут прийти из других мест, таких как код инициализации, где данные могут быть взяты из веб-API, а действия будут выпущены для обновления представлений. Действие может прийти от таймера, который требует обновления экрана.
Действия Создатели
Практика заключается в том, чтобы инкапсулировать код, создавая действия в функциях. Эти функции, которые создают и отправляют действия, называются создателями действий.
Веб-API звонки
При выполнении вызовов веб-API для обновления пользовательского интерфейса, вызов веб-API сопровождается действием для обновления магазина. Когда магазин обновляется, он выделяет событие изменений и в результате чего представление, которое слушает для этого события, будет переназначить.
Веб-API вызовы сделаны в действии создателями. Мы можем извлечь код, который выполняет вызов API в функциях Web API Utils.
Неидирекционные данные потока
Обновление просмотров потока в одном направлении:
Представления не изменяют данные, которые они получили. Они слушают изменения этих данных, создают действия с новыми значениями, но не обновляют данные.
Магазины, представления и любые другие действия не могут изменить состояние (другие) магазины напрямую. Они должны отправить действие через диспетчер
Поток данных короче в магазине чтения, чем в пишете. Поток данных в магазине пишет отличается между асинхронными и синхронными действиями.
Магазин читает
Магазин пишет в синхронных действиях
Магазин пишет в асинхронных действиях
Плюс
Архитектура Flux лучше в приложении, где представления не отображаются непосредственно на доменные магазины. Чтобы поставить по-другому, когда представления могут создавать действия, которые будут обновлять много магазинов и магазинов, могут запускать изменения, которые будут обновлять много просмотров.
Действия могут быть сохранены, а затем воспроизведены.
Господин
Flux может добавить ненужную сложность на приложение, где каждый вид представления на один магазин. В таком виде приложения достаточно разделение между видом и магазином.
Искать, например, в Как создать трехслойный приложение с React Отказ
Заключение
Магазины управлять состоянием. Они меняют состояние только путем прослушивания действий. Магазины уведомляют представления для обновления.
Взгляды представляют пользовательский интерфейс и обрабатывать взаимодействие пользователя. Взгляды контейнеров прослушать изменения в магазине.
Диспетчер передает действия на все зарегистрированные магазины.
Действия являются простыми объектами.
Откройте для себя функциональный JavaScript был назван одним из Лучшие новые функциональные программирования книги BookAuthority Действительно
Для получения дополнительной информации о применении функциональных методов программирования в реакции посмотрите на Функциональный реагировать Отказ
Учить Функциональный реагировать в проекте, основанном на проекте, с Функциональная архитектура с реагированием и redux Отказ
Следуйте в Twitter
Оригинал: “https://www.freecodecamp.org/news/an-introduction-to-the-flux-architectural-pattern-674ea74775c9/”