Kā piekļūt datiem React?
sobes.tech AI
Atbilde no AI
React ir vairākas piekļuves datiem metodes:
-
Propsi (Props): Datu nodošana no vecā komponenta uz bērnu. Propsi ir nemaināmi komponenta iekšienē.
// Vecāka komponenta function ParentComponent() { const data = "Sveiki no vecāka!"; return <ChildComponentmyData={data} />; } // Bērna komponente function ChildComponent(props) { return <p>{props.myData}</p>; // Pieeja datiem caur props.myData } -
Stāvoklis (State): Datu pārvaldība komponenta iekšienē, kas var mainīties laika gaitā. Izmanto specifiskiem datiem, kas saistīti ar komponentu.
import React, { useState } from 'react'; function MyComponent() { const [count, setCount] = useState(0); // Stāvokļa definēšana function handleClick() { setCount(count + 1); // Stāvokļa maiņa } return ( <div> <p>Skaits: {count}</p> <button onClick={handleClick}>Palielināt</button> </div> ); } -
Context API: Risinājums centralizētai datu pārvaldībai, kas pieejami daudziem dziļi iekļautiem komponentiem bez tiešas propu nodošanas katrā līmenī. Piemērots globāliem vai bieži lietotiem datiem (piemēram, tēma, autentifikācija).
import React, { createContext, useContext } from 'react'; // Konteksta izveide const MyContext = createContext(); // Konteksta nodrošinātājs function MyProvider({ children }) { const sharedData = "Koplietotie dati"; return ( <MyContext.Provider value={sharedData}> {children} </MyContext.Provider> ); } // Konteksta lietotājs function MyConsumerComponent() { const data = useContext(MyContext); // Pieeja datiem caur useContext return <p>{data}</p>; } -
Datu haki (Custom Hooks): Izveidot atkārtoti izmantojamu loģiku datu piekļuvei no ārējiem avotiem (piemēram, 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 kļūda! statuss: ${response.status}`); } const result = await response.json(); setData(result); } catch (error) { setError(error); } finally { setLoading(false); } } fetchData(); }, [url]); // Atkarība no url return { data, loading, error }; } // Hakuma izmantošana function DataDisplay() { const { data, loading, error } = useFetchData('https://api.example.com/data'); if (loading) return <p>Ielādējas...</p>; if (error) return <p>Kļūda: {error.message}</p>; return <p>{JSON.stringify(data)}</p>; } -
Bibliotēkas (piemēram, Redux, Zustand utt.): Sarežģītu stāvokļa pārvaldību risina ar trešo pušu bibliotēkām. Tās piedāvā centralizētu datu glabātuvi un mehānismus to izmaiņu pārvaldībai.