React

A JavaScript library for building component-based user interfaces, maintained by Meta.

React is the dominant frontend framework for building interactive web applications. It introduced the component model that now shapes all major UI frameworks and is the baseline expectation for most frontend and full-stack engineering roles. React knowledge transfers readily to React Native for mobile development.

Typical time to job-readiness: ~3 months.

Learning React

Beginner

Learn component fundamentals — JSX, props, useState, and useEffect. Build a small project like a todo app to cement the mental model before adding more complexity.

Intermediate

Master hooks (useContext, useReducer, custom hooks), handle async data with React Query or SWR, and integrate React Router. Learn to test components with React Testing Library.

Advanced

Deep understanding of React's rendering model (reconciliation, memoization, Suspense, concurrent features), performance profiling with DevTools, and architectural decisions around state management. Senior roles expect you to evaluate trade-offs, not just use the framework.

Key concepts

  • Component model and JSX — UI as a function of state
  • useState, useReducer, and when to use each for local state
  • useEffect, dependency arrays, and how to avoid infinite loops
  • Props, data flow downward, and lifting state up
  • Performance tools: React.memo, useMemo, useCallback
  • Virtual DOM and how React's reconciliation decides what to re-render

Common interview topics

  • How does the virtual DOM work and when does React re-render a component
  • Explain useState vs useReducer and when you'd choose one over the other
  • Walk me through the useEffect dependency array and common mistakes
  • How would you diagnose and fix a slow-rendering React component
  • Controlled vs uncontrolled components — differences and trade-offs
  • When would you reach for Context API vs an external state library

Browse React jobs