Why ReactJS ?
View in MVC – ReactJS acts as the view layer for your application and it provides a robust infrastructure to build scalable and performant front ends.
Virtual DOM – This is probably why most developers are so attracted to React. React manages its own DOM in memory. The most expensive operation most web apps suffer is mutating the DOM. React's approach is to maintain a virtual representation of the DOM which allows it to calculate differences in the DOM so that it only mutates the part of the DOM that actually needs to be updated. This is a huge benefit!
Declarative – Design simple views for each state in your application, and React provides an innovating abstraction layer which efficiently updates just the right components when your data changes.
Component-Based – Build encapsulated components that manage their own state, then compose them to make complex UIs.
Server Side Rendering – Combining a NodeJS server and ReactJS helps us build even more complex applications by pre-rendering the initial state of our ReactJS components.
Non-Opinitated – It doesnt make assumptions about the rest of your technology stack, so you can develop new features in React without rewriting existing code.
Testability – React components simplify testing greatly. As a proof of it's simplicity, our new web client has more tests than any of our other clients.
Functional Programming – ReactJS stateless components act like pure functions while composition is highly enforced instead of inheritance to reuse code between components.