useContext
Hook in ReactThe useContext
Hook is used to access values from React’s Context API without needing to wrap components in Consumer
components. It helps manage global state efficiently by avoiding prop drilling.
useContext
?useContext
?First, create a context using createContext()
.
import { createContext } from "react";
const ThemeContext = createContext("light"); // Default value
Provider
Wrap your components inside a Provider to supply the context value.
function App() {
return (
<ThemeContext.Provider value="dark">
<ChildComponent />
</ThemeContext.Provider>
);
}
useContext
Instead of using <ThemeContext.Consumer>
, we use useContext()
.
import { useContext } from "react";
function ChildComponent() {
const theme = useContext(ThemeContext); // Access context value
return <p>Current Theme: {theme}</p>;
}
import React, { useContext, createContext } from "react";
// 1 Create Context
const ThemeContext = createContext("light");
function ChildComponent() {
// 2 Use useContext to get the value
const theme = useContext(ThemeContext);
return <p>Current Theme: {theme}</p>;
}
function App() {
return (
// 2 Provide context value
<ThemeContext.Provider value="dark">
<ChildComponent />
</ThemeContext.Provider>
);
}
export default App;
* Output: Current Theme: dark
Feature | useContext |
---|---|
Purpose | Access global state without prop drilling |
Works with | React Context API |
Alternative to | Prop drilling, Redux (for simple cases) |
Best for | Theme, Auth, Global Settings |
Not ideal for | Frequently changing state (use useState or useReducer instead) |