Cum se accesează datele în React?
sobes.tech AI
Răspuns de la AI
Există mai multe moduri de a accesa datele în React:
-
Props: Transmiterea datelor de la un component părinte la unul copil. Props sunt imuabile în interiorul componentului.
// Componenta părinte function ParentComponent() { const data = "Salut din partea părintelui!"; return <ChildComponent myData={data} />; } // Componenta copil function ChildComponent(props) { return <p>{props.myData}</p>; // Acces la date prin props.myData } -
Stare (State): Gestionarea datelor în interiorul componentului, care pot fi modificate în timp. Folosit pentru date specifice componentului.
import React, { useState } from 'react'; function MyComponent() { const [count, setCount] = useState(0); // Definirea stării function handleClick() { setCount(count + 1); // Modificarea stării } return ( <div> <p>Contor: {count}</p> <button onClick={handleClick}>Increment</button> </div> ); } -
API-ul Context: Soluție pentru gestionarea centralizată a datelor, accesibile pentru multe componente înrudite fără a transmite explicit props la fiecare nivel. Potrivit pentru date globale sau frecvent utilizate (de exemplu, temă, autentificare).
import React, { createContext, useContext } from 'react'; // Crearea contextului const MyContext = createContext(); // Provider-ul contextului function MyProvider({ children }) { const sharedData = "Date partajate"; return ( <MyContext.Provider value={sharedData}> {children} </MyContext.Provider> ); } // Consumatorul contextului function MyConsumerComponent() { const data = useContext(MyContext); // Acces la date prin useContext return <p>{data}</p>; } -
Hooks personalizați: Crearea de logică reutilizabilă pentru accesul la date din surse externe (de exemplu, API-uri).
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(`Eroare HTTP! status: ${response.status}`); } const result = await response.json(); setData(result); } catch (error) { setError(error); } finally { setLoading(false); } } fetchData(); }, [url]); // dependență de url return { data, loading, error }; } // Utilizarea hook-ului function DataDisplay() { const { data, loading, error } = useFetchData('https://api.example.com/data'); if (loading) return <p>Se încarcă...</p>; if (error) return <p>Eroare: {error.message}</p>; return <p>{JSON.stringify(data)}</p>; } -
Biblioteci (cum ar fi Redux, Zustand etc.): Pentru gestionarea stării complexe a aplicației, se utilizează biblioteci externe. Acestea oferă un depozit centralizat de date și mecanisme pentru gestionarea modificărilor acestora.