React is a UI library. Its one job: keep the DOM in sync with your state. You describe what the UI should look like for a given state, React figures out what changed and updates the DOM efficiently.
Core loop: state changes → React re-renders affected components → React diffs the new virtual DOM against the previous one (reconciliation) → only real DOM changes are applied (commit phase).
Everything is a component. Components are just functions that take props and return JSX. React calls these functions during render. If state or props change, the function runs again.
Rendering ≠ painting. Rendering means React calling your component function. Painting means the browser updating pixels. React can render without anything visually changing.