The Context API is a powerful feature in React that enables you to manage state across your application more effectively, especially when dealing with deeply nested components.
The Context API provides a way to share values (state, functions, etc.) between components without having to pass props down manually at every level.
React.createContext(). It serves as a container for the data you want to share.useContext hook)import React, { useEffect, useState } from 'react';
function Parent() {
const [count, setCount] = useState(0);
return (
<>
<Incrase count={count} setCount={setCount} />
<Decrease count={count} setCount={setCount} />
<Value count={count} setCount={setCount} />
</>
);
}
function Decrease({ count, setCount }) {
return <button onClick={() => setCount(count - 1)}>Decrease</button>;
}
function Incrase({ count, setCount }) {
return <button onClick={() => setCount(count + 1)}>Increase</button>;
}
function Value({ count }) {
return <p>Count: {count}</p>;
}
// App Component
const App = () => {
return <div>
<Parent />
</div>
};
export default App;
CountContextconst CountContext = createContext();
function CountContextProvider({ children }) {
const [count, setCount] = useState(0);
return <CountContext.Provider value={{count, setCount}}>
{children}
</CountContext.Provider>
}
CountContextProviderfunction Parent() {
return (
<CountContextProvider>
<Incrase />
<Decrease />
<Value />
</CountContextProvider>
);
}
context in individual componentsfunction Decrease() {
const {count, setCount} = useContext(CountContext);
return <button onClick={() => setCount(count - 1)}>Decrease</button>;
}
function Incrase() {
const {count, setCount} = useContext(CountContext);
return <button onClick={() => setCount(count + 1)}>Increase</button>;
}
function Value() {
const {count} = useContext(CountContext);
return <p>Count: {count}</p>;
}
App component which renders Parentconst App = () => {
return <div>
<Parent />
</div>
};
export default App;