[Global State Provider] -> context
│
▼
[Components] -> useContext -> read state & dispatch actions
│
▼
[Actions] -> update state via useReducer or useState
│
▼
[State Change triggers re-render] -> updated UI
Create Context
createContext<Type | null>()
Provider → wrap all components and gives them context valueimport { createContext, useContext, useState } from 'react'
// 1. Create Context
const ThemeContext = createContext()
// ThemeContext.Provider → wraps children to provide values
function App() {
const [theme, setTheme] = useState('light')
return (
// ✅ Provider wraps components that need access
// child components will receive: value={{ theme, setTheme }}
<ThemeContext.Provider value={{ theme, setTheme }}>
<Toolbar />
</ThemeContext.Provider>
)
}
Use context value