React is a JavaScript library for building user interfaces that allows building large applications with data that changes over time. It uses a virtual DOM for efficiently updating the real DOM and a component-based approach where data flows from parent to child components. The core concepts of React include components, the virtual DOM, JSX, and data flow from parent to child and between sibling components using a unidirectional data flow model like Redux.