React applications are built by composing reusable components. A React component is a self-contained, independent piece of the user interface. Components can be simple, like a button or a form input, or complex, like an entire page.
Components can be either class-based or functional. Class-based components have a render
method and can maintain state, while functional components are stateless and use hooks for managing state.