React Context API Explained: One Context, Many Components
đ§ React Context āϏāĻšāĻ āĻāĻžāώāĻžā§: āĻā§āϝāĻžāĻāĻ āĻāĻāĻāĻžāĻ, āĻāϞ āĻ āύā§āĻāĻā§āϞ⧠đ°
React āĻļā§āĻāĻžāϰ āϏāĻŽā§ Context API āĻ
āύā§āĻā§āϰ āĻāĻžāĻā§āĻ confusing āϞāĻžāĻā§āĨ¤
āĻāĻ āĻāĻŽāĻŋ āĻāĻāĻĻāĻŽ āϏāĻšāĻ āĻŦāĻžāϏā§āϤāĻŦ āĻāĻĻāĻžāĻšāϰāĻŖ āĻĻāĻŋā§ā§ āĻŦā§āĻāĻžāĻŦā§āĨ¤
đ¤ Context āĻāϏāϞ⧠āĻā§āύ āĻĻāϰāĻāĻžāϰ?
āϧāϰ⧠āϤā§āĻŽāĻžāϰ App-āĻ āĻ āύā§āĻ component āĻāĻā§āĨ¤
App
ââ ThemeColor
ââ Childtheme, name, setTheme āĻāĻ āĻĄāĻžāĻāĻž āϝāĻĻāĻŋ props āĻĻāĻŋā§ā§ āĻĒāĻžāĻ āĻžāĻ,
āϤāĻžāĻšāϞ⧠āĻšāĻŦā§ prop drilling đĩ
đ āĻāĻ āϏāĻŽāϏā§āϝāĻžāϰ āϏāĻŽāĻžāϧāĻžāύāĻ React Context API
đ§ āϏāĻšāĻāĻāĻžāĻŦā§ āĻŦā§āĻāĻžāϰ āĻā§āώā§āĻāĻž āĻāϰāĻŋ
āϧāϰ⧠āĻāĻāĻāĻž āĻŦāĻžā§āĻŋ đ
1ī¸âŖ createContext() = āĻĒāĻžāύāĻŋāϰ āĻā§āϝāĻžāĻāĻ đ°
import { createContext } from "react";
const UserContext = createContext();
export default UserContext;āĻāĻāĻž āĻļā§āϧ⧠āĻāĻāĻāĻž āĻāĻžāϞāĻŋ āĻā§āϝāĻžāĻāĻāĨ¤
āĻāĻāύ⧠āĻā§āύ⧠āĻĒāĻžāύāĻŋ āύāĻžāĻāĨ¤
Get MD Mehedi Hasanâs stories in your inbox
Join Medium for free to get updates from this writer.
đ āĻāĻāĻāĻž App-āĻ āϏāĻžāϧāĻžāϰāĻŖāϤ āĻāĻāĻāĻžāĻ āĻā§āϝāĻžāĻāĻ āϞāĻžāĻā§
2ī¸âŖ Provider = āĻā§āϝāĻžāĻāĻā§ āĻĒāĻžāύāĻŋ āĻāϰāĻž đ§
<UserContext.Provider value={{ theme, setTheme, name }}>
<ThemeColor />
</UserContext.Provider>āĻāĻāĻžāύ⧠āϤā§āĻŽāĻŋ āĻŦāϞāϤā§āĻā§:
- āĻĒāĻžāύāĻŋ āĻā§? â
theme,setTheme,name - āĻāĻžāϰāĻž āĻĒāĻžāĻŦā§? â āĻāĻŋāϤāϰā§āϰ āϏāĻŦ component
â ī¸ Provider āĻāĻžā§āĻž context āĻāĻžāĻāĻ āĻāϰāĻŦā§ āύāĻž
3ī¸âŖ useContext(UserContext) = āĻŦāĻžāϞāϤāĻŋ āĻĻāĻŋā§ā§ āĻĒāĻžāύāĻŋ āύā§āĻā§āĻž đĒŖ
useContext(UserContext);āĻāĻāĻž React-āĻāϰ built-in hookāĨ¤
āĻāĻŋāύā§āϤ⧠āĻŦāĻžāϰāĻŦāĻžāϰ āϞāĻŋāĻāϤ⧠āĻā§āϞ⧠code āĻāĻžāϰ⧠āĻšā§ā§ āϝāĻžā§āĨ¤
4ī¸âŖ useUserContext() = āĻāϞ āĻā§āϞ⧠āĻĒāĻžāύāĻŋ āύā§āĻā§āĻž đ°đ
import { useContext } from "react";
import UserContext from "./Component/ContexAPI";
export const useUserContext = () => {
return useContext(UserContext);
};â ī¸ āĻāĻāĻž āύāϤā§āύ context āύāĻž
āĻāĻāĻž āĻļā§āϧ⧠āĻāĻāĻāĻž custom hook
đ āϏā§āύā§āĻĻāϰ āĻāϰ⧠āĻĒāĻžāύāĻŋ āύā§āĻā§āĻžāϰ āĻāĻāĻāĻž āĻāϞ
āĻāĻāύ āϝā§āĻā§āύ⧠component-āĻ āϞāĻŋāĻāϞā§āĻ āĻšāĻŦā§:
const { theme, name } = useUserContext();đ§ āϏāĻŦāĻā§ā§ā§ āĻā§āϰā§āϤā§āĻŦāĻĒā§āϰā§āĻŖ āϞāĻžāĻāύ
â āĻā§āϝāĻžāĻāĻ āĻāĻāĻāĻžāĻ, āĻāϞ āĻ āύā§āĻāĻā§āϞā§
createContext()â āĻāĻāĻŦāĻžāϰProviderâ āĻāĻāĻŦāĻžāϰuseUserContext()â āϝāϤ āĻā§āĻļāĻŋ component-āĻ
â āĻŽāύ⧠āϰāĻžāĻāĻžāϰ āĻŽāύā§āϤā§āϰ
Context āĻŦāĻžāύāĻžāĻ āĻāĻāĻŦāĻžāϰ
Provider āĻĻāĻžāĻ āĻāĻāĻŦāĻžāϰ
Hook āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āϝāϤāĻŦāĻžāϰ āĻĻāϰāĻāĻžāϰ








