React is a JavaScript library for building user interfaces from encapsulated, reusable components. It renders views declaratively, automatically updating only the parts of the interface that change when underlying data shifts, while leaving stable sections untouched.
Its rendering engine breaks work into incremental, prioritised units that can pause, resume, or abort without blocking the main thread. A diffing algorithm computes minimal changes between staged UI trees, and core rendering logic remains decoupled from any specific output target. State and side-effect logic attach to functional components through a call-order mechanism, letting reusable behaviour compose with predictable data flows from parent to child.
The same component model targets web browsers, server environments via Node, and native mobile platforms, so interface code travels across contexts without rewriting core logic. Server-side streaming generates HTML incrementally for faster initial page loads, with progressive hydration binding interactivity once the page reaches the browser.