React is an open source JavaScript library for building user interfaces. It allows building encapsulated components that manage their own state, then composing them to make complex UIs. React minimizes DOM changes by updating the DOM efficiently. The main advantages of React include declarative views that make code more predictable, the ability to easily pass rich data through the app, and rendering on both the web and mobile. Components in React implement a render method that takes input data and returns what to display.