ReactJs можно применять в связке с Flux ( есть варианты, типа Reflux). Flux это архитектура построения сложный приложений, так же предоставляет набор методов для организации этой архитектуры.
Где применять. Однозначно там, где нужно обрабатывать большой массив данных в реальном времени. Рендеринг на React до сих пор самый быстрый из всех фреймворков.
React проще, чем Angular и Ember например, изначально работает на компонентах, причем шаблоны уже встроены в компоненты, что может быть весьма удобно. Компонентная архитектура это вообще будущее и вторая версия Angular потихоньку движется в этом же направлении. Есть так называемые mixin, готовые компоненты, которые уже можно встроить в приложение. Есть роутинг. В целом конечно Angular больше фиче комплит, огромная армия разработчиков постоянно добавляет что то, да и сама команда активно работает над фреймворком. Кроме того туча туториалов и готовых решений делает Ангуляр лучшим универсальным решением для всего фронтэнда на сегодняшний день.