useState ·
Lifting State ·
Immutabilität ·
Callback Props ·
Props Drilling ·
Context API
State und Props sind das Herzstück von React. Diese Cheatsheet behandelt die Verwaltung von Daten in Komponenten, den Datenfluss zwischen Komponenten und die Lösung von Herausforderungen wie Props Drilling.
useState ist der grundlegende Hook für die Verwaltung von State in funktionalen Komponenten. Er gibt den aktuellen Wert und eine Setter-Funktion zurück, die das erneute Rendern auslöst.
| Muster | Beschreibung | Beispiel |
|---|---|---|
| Einfach | Primitive Werte | const [count, setCount] = useState(0) |
| Objekt | Mehrere zusammengehörige Werte | const [user, setUser] = useState({ name: '', age: 0 }) |
| Array | Listen von Elementen | const [items, setItems] = useState([]) |
| Lazy Initialization | Initialwert wird erst bei Bedarf berechnet | useState(() => expensiveComputation()) |
| Funktionale Aktualisierung | Update basierend auf vorherigem Wert | setCount(prev => prev + 1) |
Lifting State bedeutet, dass State von einer Kindkomponente in die nächste gemeinsame Elternkomponente verschoben wird. So können mehrere Komponenten denselben State nutzen und aktualisieren.
Immutabilität bedeutet, dass State niemals direkt verändert wird. Stattdessen wird ein neuer Wert erstellt und mit der Setter-Funktion gesetzt. Das ist essenziell für korrektes Rendering und Debugging.
| Datentyp | Pattern | Beispiel |
|---|---|---|
| Primitive | Einfach zuweisen | setCount(count + 1) |
| Objekt | Spread-Operator | setUser({ ...user, age: user.age + 1 }) |
| Array (Hinzufügen) | Spread oder concat | setItems([...items, newItem]) |
| Array (Entfernen) | filter | setItems(items.filter(i => i.id !== id)) |
| Array (Aktualisieren) | map | setItems(items.map(i => i.id === id ? { ...i, done: true } : i)) |
| Verschachtelt | Mehrere Spreads | setState({ ...state, user: { ...state.user, age: 30 } }) |
immer (siehe useImmer von use-immer), die eine mutierende Syntax erlaubt und trotzdem immutable Updates erzeugt.
Callback Props sind Funktionen, die von einer Elternkomponente an eine Kindkomponente übergeben werden. Die Kindkomponente kann diese Funktion aufrufen, um Daten oder Events an die Elternkomponente zurückzugeben.
on als Präfix (z.B. onClick, onChange, onSubmit) – das entspricht dem React-Standard und macht den Code lesbarer.
Props Drilling ist das Problem, dass Props über mehrere Komponentenebenen durchgereicht werden müssen. Die Context API bietet eine elegante Lösung, um Daten ohne Prop Drilling zu teilen.
useState
Lifting
Immutability
Callback
Prop Drilling
Context
const [state, setState] = useState(0) ·
setState({ ...state, key: value }) ·
const context = useContext(AppContext)