value
prop’u ile veri sağlar.useContext
) bu veriye erişir ve yalnızca bu bileşenler yeniden render edilir.UserContext.js
import { createContext, useContext, useState } from 'react';
const UserContext = createContext();
export function UserProvider({ children }) {
const [user, setUser] = useState({ name: 'Talha', isLoggedIn: true });
return (
<UserContext.Provider value={{ user, setUser }}>
{children}
</UserContext.Provider>
);
}
export function useUser() {
const context = useContext(UserContext);
if (!context) throw new Error('useUser must be used within a UserProvider');
return context;
}
App.js
import { UserProvider } from './UserContext';
import Profile from './Profile';
function App() {
return (
<UserProvider>
<Profile />
</UserProvider>
);
}
Profile.js
import { useUser } from './UserContext';
function Profile() {
const { user, setUser } = useUser();
return <div>Hoşgeldin, {user.name}</div>;
}
const PostContext = createContext();
export function PostProvider({ children }) {
const [posts, setPosts] = useState([]);
const onAddPost = (post) => setPosts([...posts, post]);
const onClearPosts = () => setPosts([]);
return (
<PostContext.Provider value={{ posts, onAddPost, onClearPosts }}>
{children}
</PostContext.Provider>
);
}
// Kullanım
const { onClearPosts } = useContext(PostContext);