Я нахожу пример todo flux-приложения, который немного не хватает, поэтому я пытаюсь разобраться в этом, развивая приложение, чтобы учиться и экспериментировать.
Приложение представляет собой организатор корзины фруктов и фруктов. У меня есть несколько корзин, которые могут разнести разные кусочки фруктов между ними. Вы можете выделить кусок фруктов, щелкнув по нему, и последний перетаскиваемый элемент останется выделенным.
На основании этого у меня есть 3 магазина:
- FruitStore
- BasketStore
- AppStateStore - отслеживать последний щелчок и последний вытащенный плод
Когда происходит действие пользователя, FruitAction отправляется и обрабатывается либо AppStateStore, если щелкнут фрукты, либо все магазины, если фрукты были перемещены в другую корзину.
Основной компонент AppView прослушивает изменение событий как из FruitStore, так и из AppStateStore и повторно создает.
Мои вопросы:
- Это хороший подход для этого сценария?
- Должен ли AppView прослушивать несколько магазинов? Как предотвратить визуализацию AppView несколько раз подряд? Прямо сейчас, когда был перемещен фрукт, события смены огня FruitStore и AppStateStore вызывают два рендера подряд.
- В статье Flux на сайте React отображается представление диспетчеризации объекта действия (например, AppDispatcher.dispatch(TodoActions.updateText())), но было бы лучше, если бы действие было отправлено (например, только FruitActions.moveBasket()) и AppView не знает о AppDispatcher?
- В настоящее время только AppView прослушивает магазины, но если отдельные компоненты Fruit прослушивают AppStateStore, чтобы повторно отображать только их самих, если они должны быть выделены?
- Есть ли более полный пример архитектуры Flux или что-то подобное?