What it is
React is a library for describing user interfaces as components. State changes produce a new description of the UI, and React coordinates the work needed to update the host environment.
Mental model
Treat a component as a state-to-UI relationship. Rendering should stay pure; effects are for synchronizing with systems outside React.
Why it exists
Component composition and declarative rendering make complex interfaces easier to reason about, reuse, and evolve across teams.
When to use it
- A product benefits from React's ecosystem and team familiarity
- The interface has substantial interactive state
- A framework built on React fits the rendering and routing requirements
When not to use it
- A small static page does not need a client runtime
- Another platform or framework better matches existing constraints and expertise
Alternatives
- Vue
- Svelte
- Solid
- Angular
- Server-rendered HTML with progressive enhancement
Production considerations
- Choose a routing and data architecture deliberately
- Keep state close to where it is used
- Profile before adding memoization
- Plan loading, error, and empty states
Accessibility implications
React does not provide accessibility automatically. Semantic HTML, focus management, labeling, announcements, and keyboard behavior remain application responsibilities.
Performance implications
Runtime and hydration cost depend on architecture and usage. Server rendering, code splitting, and careful state boundaries can reduce client work.