React5 min read
React Context API
Share data across components without prop drilling using Context API.
Sarah Johnson
December 20, 2025
0.0k0
Context API solves prop drilling - passing data through many components.
Creating Context
import { createContext, useState, useContext } from 'react';
const ThemeContext = createContext();
function App() {
const [theme, setTheme] = useState('light');
return (
<ThemeContext.Provider value={{ theme, setTheme }}>
<Header />
<Content />
</ThemeContext.Provider>
);
}
Using Context
function Header() {
const { theme, setTheme } = useContext(ThemeContext);
return (
<header style={{ background: theme === 'dark' ? '#333' : '#fff' }}>
<button onClick={() => setTheme(theme === 'dark' ? 'light' : 'dark')}>
Toggle Theme
</button>
</header>
);
}
Auth Context Example
const AuthContext = createContext();
function AuthProvider({ children }) {
const [user, setUser] = useState(null);
const login = (userData) => setUser(userData);
const logout = () => setUser(null);
return (
<AuthContext.Provider value={{ user, login, logout }}>
{children}
</AuthContext.Provider>
);
}
function useAuth() {
return useContext(AuthContext);
}
Using it:
function Profile() {
const { user, logout } = useAuth();
return (
<div>
<h1>Welcome {user.name}</h1>
<button onClick={logout}>Logout</button>
</div>
);
}
Remember
- Avoid prop drilling
- Wrap app with Provider
- useContext to access values
- Good for theme, auth, language
Congratulations on completing beginner React! Moving to intermediate topics!
#React#Context#State Management#Intermediate