React › Design Patterns in React
What is the provider pattern in React and how does it relate to the Context API?
AdvancedAnswer
The provider pattern wraps a piece of your app in a component that supplies shared data and functions to everything inside it, usually built using the Context API. This keeps related state and logic organized in one place, and any component nested inside the provider can access it without prop drilling.
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>
);
}Real-world example An app wraps its entire component tree in an AuthProvider, giving every page easy access to the current user, plus login and logout functions, without passing any of that data manually through props.