Wie greift man in React auf Daten zu?
sobes.tech KI
Antwort von AI
Es gibt mehrere Möglichkeiten, in React auf Daten zuzugreifen:
-
Props: Daten vom Eltern- zum Kind-Komponent übergeben. Props sind innerhalb des Komponenten unveränderlich.
// Elternkomponente function ParentComponent() { const data = "Hallo vom Elternteil!"; return <ChildComponent myData={data} />; } // Kindkomponente function ChildComponent(props) { return <p>{props.myData}</p>; // Zugriff auf Daten über props.myData } -
State: Verwaltung von Daten innerhalb des Komponenten, die sich im Laufe der Zeit ändern können. Wird für komponentenspezifische Daten verwendet.
import React, { useState } from 'react'; function MyComponent() { const [count, setCount] = useState(0); // Zustandsdefinition function handleClick() { setCount(count + 1); // Zustandsänderung } return ( <div> <p>Zähler: {count}</p> <button onClick={handleClick}>Inkrementieren</button> </div> ); } -
Context API: Lösung für zentrale Datenverwaltung, die vielen verschachtelten Komponenten zugänglich sind, ohne Props explizit durch jede Ebene zu übergeben. Geeignet für globale oder häufig verwendete Daten (z.B. Thema, Authentifizierung).
import React, { createContext, useContext } from 'react'; // Kontext erstellen const MyContext = createContext(); // Kontext-Provider function MyProvider({ children }) { const sharedData = "Geteilte Daten"; return ( <MyContext.Provider value={sharedData}> {children} </MyContext.Provider> ); } // Kontext-Verbraucher function MyConsumerComponent() { const data = useContext(MyContext); // Zugriff auf Daten via useContext return <p>{data}</p>; } -
Custom Hooks: Erstellung wiederverwendbarer Logik für den Zugriff auf Daten aus externen Quellen (z.B. API).
import { useState, useEffect } from 'react'; function useFetchData(url) { const [data, setData] = useState(null); const [loading, setLoading] = useState(true); const [error, setError] = useState(null); useEffect(() => { async function fetchData() { try { const response = await fetch(url); if (!response.ok) { throw new Error(`HTTP-Fehler! Status: ${response.status}`); } const result = await response.json(); setData(result); } catch (error) { setError(error); } finally { setLoading(false); } } fetchData(); }, [url]); // Abhängigkeit von url return { data, loading, error }; } // Hook verwenden function DataDisplay() { const { data, loading, error } = useFetchData('https://api.example.com/data'); if (loading) return <p>Lädt...</p>; if (error) return <p>Fehler: {error.message}</p>; return <p>{JSON.stringify(data)}</p>; } -
Bibliotheken (wie Redux, Zustand, etc.): Für die Verwaltung komplexer Anwendungszustände werden externe Bibliotheken verwendet. Sie bieten eine zentrale Speicherung der Daten und Mechanismen zu deren Verwaltung.