Re-usability is the main strength of ReactJs .
When designing interfaces, break down the common design elements (buttons, form fields, layout components, etc.) into reusable components with well-defined interfaces. That way, the next time you need to build some UI, you can write much less code.
Paradigm shift : move the direct data and application state into the component ; reduce dependency on the derived data .
MVC simply don’t scale ! So why not make a single-directional flow like FLUX
Action -> Dispatcher -> Store -> View -> Action -> Dispatcher
Understand the actions of the systems and how the data and errors propagate in one direction predicatively.
REACT solves the problem of consistent rendering through refreshing components upon data change all the time using REST-like idempotency and referential transparency.
sequence of imperative mutations in UI represented as a Dom Diff to render the Virtual Dom.
The Key difference of React from Angular : React renders Complete Virtual DOM and there is No Observable abstraction whereas Angular forces one think in terms of MVC patterns.
React is natural evaluation of JQuery : Flux manages Ajax calls and React hides all abstraction of state mutations whereas JQuery requires developer to remember the mutated states and then render UI accordingly.
Hold on , React Native is here to build seamless ios and android experience .