Hoe krijg je toegang tot gegevens in React?
sobes.tech AI
Antwoord van AI
Er zijn verschillende manieren om toegang te krijgen tot gegevens in React:
-
Props: Gegevens doorgeven van een oudercomponent naar een kindcomponent. Props zijn onveranderlijk binnen de component.
// Oudere component function ParentComponent() { const data = "Hallo van de ouder!"; return <ChildComponent myData={data} />; } // Kind component function ChildComponent(props) { return <p>{props.myData}</p>; // Toegang tot gegevens via props.myData } -
State: Beheer van gegevens binnen de component, die in de loop van de tijd kunnen veranderen. Gebruikt voor gegevens die specifiek zijn voor de component.
import React, { useState } from 'react'; function MyComponent() { const [count, setCount] = useState(0); // State-definitie function handleClick() { setCount(count + 1); // Verandering van state } return ( <div> <p>Teller: {count}</p> <button onClick={handleClick}>Increment</button> </div> ); } -
Context API: Oplossing voor gecentraliseerd gegevensbeheer, toegankelijk voor veel geneste componenten zonder expliciet props door te geven op elk niveau. Geschikt voor globale of vaak gebruikte gegevens (bijvoorbeeld thema, authenticatie).
import React, { createContext, useContext } from 'react'; // Context maken const MyContext = createContext(); // Context provider function MyProvider({ children }) { const sharedData = "Gedeelde gegevens"; return ( <MyContext.Provider value={sharedData}> {children} </MyContext.Provider> ); } // Context consumer function MyConsumerComponent() { const data = useContext(MyContext); // Toegang tot gegevens via useContext return <p>{data}</p>; } -
Custom Hooks: Herbruikbare logica voor toegang tot gegevens uit externe bronnen (bijvoorbeeld 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-fout! status: ${response.status}`); } const result = await response.json(); setData(result); } catch (error) { setError(error); } finally { setLoading(false); } } fetchData(); }, [url]); // afhankelijkheid van url return { data, loading, error }; } // Gebruik van de hook function DataDisplay() { const { data, loading, error } = useFetchData('https://api.example.com/data'); if (loading) return <p>Loading...</p>; if (error) return <p>Error: {error.message}</p>; return <p>{JSON.stringify(data)}</p>; } -
Bibliotheken (zoals Redux, Zustand, etc.): Voor het beheren van complexe applicatiestatussen worden externe bibliotheken gebruikt. Ze bieden een gecentraliseerde opslagplaats voor gegevens en mechanismen om deze te beheren.