Context API
Context API to mechanizm React do współdzielenia danych między komponentami bez przekazywania props przez każdy poziom drzewa (prop drilling). Klasyczne zastosowania: motyw (dark/light), język, dane zalogowanego użytkownika.
This content is not available in your language yet.
Context API
Context API to mechanizm React do współdzielenia danych między komponentami bez przekazywania props przez każdy poziom drzewa (prop drilling). Klasyczne zastosowania: motyw (dark/light), język, dane zalogowanego użytkownika.
Schemat
Drzewo komponentów: lewe drzewo z “czerwonymi strzałkami” prop drilling przez 4 poziomy. Prawe drzewo z Context Provider owijającym wszystko i jedną strzałką do konsumenta.
Przykład kodu JSX
ThemeContext — przełącznik dark/light mode dostępny w każdym komponencie bez props.
Forma: 10 slajdów, 10 minut
Ocena: 3.0Forma: 12-15 slajdów, 12 minut
Ocena: 4.0-5.0Forma: 15 slajdów + Q&A
Ocena: 5.0-6.0import { createContext, useContext, useState } from 'react';
// 1. Utwórz kontekstconst ThemeContext = createContext('light');
// 2. Provider owija aplikacjęfunction App() { const [theme, setTheme] = useState('light'); return ( <ThemeContext.Provider value={{ theme, setTheme }}> <Header /> <Main /> </ThemeContext.Provider> );}
// 3. Dowolny komponent w drzewie może odczytaćfunction ThemeToggle() { const { theme, setTheme } = useContext(ThemeContext); return ( <button onClick={() => setTheme(t => t === 'light' ? 'dark' : 'light')}> Motyw: {theme} </button> );}// ŹLE: theme wędruje przez każdy poziomfunction App() { const [theme] = useState('dark'); return <Header theme={theme} />;}function Header({ theme }) { return <Nav theme={theme} />; // Header nie używa theme, tylko przekazuje dalej!}function Nav({ theme }) { return <Button theme={theme} />; // Nav też nie używa!}function Button({ theme }) { return <button className={theme}>Klik</button>; // Dopiero tu jest potrzebne}Wizualizacja prop drilling
Narysujcie drzewo z “kanałem telefonicznym” przez każdy poziom — słuchawka tylko na początku i końcu, ale kabel przez każde piętro. Context to “WiFi” — sygnał wszędzie bez kabli.
Ostrzeżenie o wydajności
Podkreślcie: Context to NIE Redux. Każda zmiana wartości Providera = re-render wszystkich konsumentów. Nie wrzucajcie wszystkiego do jednego kontekstu!
Context = globalny stan bez bólu!
Context API to jedno z najczęściej używanych narzędzi w projektach React. Po tej prezentacji klasa będzie wiedzieć jak uniknąć prop drillingu we własnym projekcie!