Simplify Context Usage with a Custom Hook
When using the Context API in multiple components, you can streamline access by creating a custom hook for your context. This tiny hack reduces boilerplate and makes accessing context data more concise
Instead of using useContext directly every time, create a custom hook:
1. Define the Context and Provider:
import React, { createContext, useContext, useState } from 'react';
const ThemeContext = createContext();
export function ThemeProvider({ children }) {
const [theme, setTheme] = useState("light");
return (
<ThemeContext.Provider value={{ theme, setTheme }}>
{children}
</ThemeContext.Provider>
);
}
2. Create a Custom Hook:
export function useTheme() {
return useContext(ThemeContext);
}3. Use the Custom Hook in Components:
function ThemedComponent() {
const { theme, setTheme } = useTheme();
return (
<div style={{ background: theme === "light" ? "#fff" : "#333", color: theme === "light" ? "#000" : "#fff" }}>
<p>Current Theme: {theme}</p>
<button onClick={() => setTheme(theme === "light" ? "dark" : "light")}>
Toggle Theme
</button>
</div>
);
}You Might Also Like
Using useMemo for Caching and Optimizing Performance
~~`useMemo`~~ is a React Hook that helps optimize performance by memoizing (caching) the result of a...
Destructuring Props in Functional Components
When you pass any props to any componenet, as in this example passing name and age as props to Profi...