React is a UI library developed at Facebook to facilitate the creation of interactive, stateful & reusable UI components. It is used at Facebook in production, and Instagram.com is written entirely in React.
1 JUST THE UI
Lots of people use React as the V in MVC. Since React makes no assumptions about the rest of your technology stack, it's easy to try it out on a small feature in an existing project.
2 VIRTUAL DOM
React abstracts away the DOM from you, giving a simpler programming model and better performance.
3 DATA FLOW
React implements one-way reactive data flow which reduces boilerplate and is easier to reason about than traditional data binding.
React is built to solve one problem: building large applications with data that changes over time. To do this, React uses two main ideas.
Simply express how your app should look at any given point in time, and React will automatically manage all UI updates when your underlying data changes. When the data changes, React conceptually hits the "refresh" button, and knows to only update the changed parts.
React is all about building reusable components. In fact, with React the only thing you do is building components. Since they're so encapsulated, components make code reuse, testing, and separation of concerns easy.
React challenges a lot of conventional wisdom, and at first glance some of the ideas may seem crazy.
We will get to these "crazy" ideas, to see how react is different from AngularJS and why react is drawing so much attraction.