Last modified: February 21, 2018
React is a library for building UI components. This means it must register changes from underlying data models and update the DOM to reflect those changes. Since redrawing and updating DOM nodes is one of the most expensive operations for web browsers, it's important that this is handled efficiently by whatever library you're using.
Through its reconciliation algorithm, React uses the virtual DOM to detect what nodes have actually changed and then updates the real DOM accordingly. This minimizes the amount of redrawing that needs to take place and drastically improves performance.
Using a component based approach makes building UIs like playing with legos. Smaller pieces of code can be reused and combined to make larger components. This component based structure makes code easier to maintain, especially as your code base grows. It also improves state management as data flows in one direction.
React is an extremely hot option today. It's backed by Facebook and has a strong community surrounding it. While React itself is simply a UI library, many supporting technologies like MobX and React Native have facilitated the growth of an entire ecosystem for full stack development using React. While the revived Angular 2 and emerging Vue.js are hanging in there, React is by far and away the most popular option and continues to grow.
React has a massive community backing it and isn't going away anytime soon. Its component based approach makes it easy to manage state and maintain a growing code base. This combined with React's revolutionary use of a virtual DOM makes it an ideal choice for modern UI development.