🔑 Temel Amaç


⚡ Veri Akışı


🛠 Context + Custom Hook Örneği

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>;
}


🔹 Ek Örnek: PostContext

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);