Вопросы о State vs. Flux Stores для многофункционального приложения

Я много узнал о Flux + React, готовясь к предстоящему проекту, который будет использовать React + Flux (альтернативная реализация). Хотя все концепции мне понятны в отношении архитектуры потока и того, как они все связаны друг с другом. У меня есть сомнения по поводу того, как следует обрабатывать данные, специфичные для страницы/представления.

В крупномасштабном многофункциональном приложении естественно, что состояние/данные всего приложения, такие как статус аутентификации или другие глобальные функции, должны обрабатываться действием/сохранением потока, чтобы легко обрабатывать состояние между компонентами. Если это приложение angular 1, эти данные/состояние перейдут на фабрику.

Однако для конкретных данных/состояния страницы/представления, где они почти никогда не будут передаваться через компонент верхнего уровня, будет ли разумнее просто управлять данными в состоянии компонента? Например, если мое приложение содержит различные мини-приложения, совершенно не связанные друг с другом, такие как представление прогноза погоды и калькулятор, не сделает ли это компонент более пригодным для повторного использования, если его состояние будет управляться изнутри?

Я просто представляю, что если бы у меня был компонент «калькулятор», который сам содержал бы свое состояние, у него был бы очень автономный многоразовый компонент калькулятора, который я мог бы разместить в любом месте своего приложения, и тем не менее, если состояние калькулятора хранится в flux store, то у компонента будет гораздо больше зависимостей. В конечном счете, скажем, если я хочу разрешить два экземпляра калькулятора в своем приложении в будущем, если используются потоковые хранилища, мне придется изменить структуру, чтобы включить идентификатор экземпляра в хранилище. Тем не менее, если используются состояния компонентов, все, что мне нужно, это создать два компонента.

Я все еще относительно новичок в React + flux и все еще пытаюсь правильно понять всю концепцию. Не стесняйтесь поправлять меня, если что.


person AbSoLution8    schedule 06.07.2015    source источник


Ответы (1)


Я думаю, что у вас есть это на месте. Просто пара мыслей...

  • Там, где у вас есть какая-либо координация между компонентами (братья и сестры, родитель-потомок), хранилища очень полезны, и я нахожу их намного лучше, чем пытаться передавать реквизиты туда и обратно.

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

person Hal Helms    schedule 07.07.2015