midReact
What is Context API in ReactJS
Updated Feb 20, 2026
Short answer
Context provides a way to pass data through the component tree without having to pass props down manually at every level. Context is designed to share data that can be considered “global” for a tree of React components, such as the current authenticated user, theme, or preferred language. Using context, we can avoid passing props through intermediate elements.
Deep explanation
TypeScript
// Context lets us pass a value deep into the component tree// without explicitly threading it through every component.// Create a context for the current theme (with "light" as the default).const ThemeContext = React.createContext('light');
class App extends React.Component { render() { // Use a Provider to pass the current theme to the tree below. // Any component can read it, no matter how deep it is. // In this example, we're passing "dark" as the current value. return ( <ThemeContext.Provider value="dark"> <Toolbar /> </ThemeContext.Provider> ); }}
// A component in the middle doesn't have to// pass the theme down explicitly anymore.function Toolbar() { return ( <div> <ThemedButton /> </div> );}
class ThemedButton extends React.Component { // Assign a contextType to read the current theme context. // React will find the closest theme Provider above and use its value. // In this example, the current theme is "dark". static contextType = ThemeContext; render() { return <Button theme={this.context} />; }}Real-world example
In production, teams apply React principles to build scalable, fault-tolerant systems handling millions of users.
Common mistakes
- Common mistakes include shallow understanding, ignoring edge cases, and not considering performance bottlenecks.
Follow-up questions
- How would you scale this?
- What are trade-offs?
- How would you debug production issues?
- How does this compare to alternatives?