Еще хотел бы добавить свое мнение на тему обмена данными между компонентами. Если использовать единый стор, отпадает необходимость писать хоть какое-либо межкомпонентное взаимодействие, по сути его и не должно быть, это противоречит компонентному подходу, компонент не должен знать о том, что есть кто-то еще, он должен получать данные, отрисовываться и если нужно выполнять какую-то свою логику. В едином сторе лежат данные которые мы можем получать прикручивая компоненты к тем или иным узлам стора, тогда в большенстве случаев и потребность в жизненном цикле отпадает и компоненты становятся стрелочными, работают быстрее и проверяют сами нужно ли им отрисовываться по пропсам. Да кстати рекомендую использовать immutablejs и хранить данные в таком представлении, тогда проверка необходимости рендеринга работает лучше, соответственно все приложение работает быстрей.