React is a JavaScript library created by Facebook that allows building of user interfaces through components. Components are independent and reusable bits of code that return HTML via a render function. There are two types of components: class components that require a render method and extend React.Component, and function components that behave similarly but are simpler plain JavaScript functions. Props and state are used to pass data between components - props are immutable while state allows re-rendering on change.