React'ta verilere nasıl erişilir?
sobes.tech yapay zeka
AI'dan gelen yanıt
React'ta verilere erişmenin birkaç yolu vardır:
-
Props: Ana bileşenden çocuk bileşene veri iletmek. Props, bileşen içinde değiştirilemez.
// Ana bileşen function ParentComponent() { const data = "Parent'tan Merhaba!"; return <ChildComponent myData={data} />; } // Çocuk bileşen function ChildComponent(props) { return <p>{props.myData}</p>; // props.myData aracılığıyla verilere erişim } -
State: Bileşen içinde verilerin yönetimi, zamanla değişebilir. Bileşene özgü veriler için kullanılır.
import React, { useState } from 'react'; function MyComponent() { const [count, setCount] = useState(0); // Durum tanımı function handleClick() { setCount(count + 1); // Durumu değiştirme } return ( <div> <p>Sayaç: {count}</p> <button onClick={handleClick}>Arttır</button> </div> ); } -
Context API: Verilerin merkezi yönetimi için çözüm, birçok iç içe bileşene props iletmeden erişilebilir. Küresel veya sık kullanılan veriler (örneğin tema, kimlik doğrulama) için uygundur.
import React, { createContext, useContext } from 'react'; // Bağlam oluşturma const MyContext = createContext(); // Bağlam sağlayıcısı function MyProvider({ children }) { const sharedData = "Paylaşılan Veri"; return ( <MyContext.Provider value={sharedData}> {children} </MyContext.Provider> ); } // Bağlam tüketicisi function MyConsumerComponent() { const data = useContext(MyContext); // useContext aracılığıyla verilere erişim return <p>{data}</p>; } -
Özel Hooks: Dış kaynaklardan (örneğin API) veri erişimi için tekrar kullanılabilir mantık oluşturma.
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 hatası! Durum: ${response.status}`); } const result = await response.json(); setData(result); } catch (error) { setError(error); } finally { setLoading(false); } } fetchData(); }, [url]); // url bağımlılığı return { data, loading, error }; } // Hook kullanımı function DataDisplay() { const { data, loading, error } = useFetchData('https://api.example.com/data'); if (loading) return <p>Yükleniyor...</p>; if (error) return <p>Hata: {error.message}</p>; return <p>{JSON.stringify(data)}</p>; } -
Kütüphaneler (Redux, Zustand vb.): Uygulamanın karmaşık durumlarını yönetmek için harici kütüphaneler kullanılır. Merkezi veri deposu ve değişiklikleri yönetmek için mekanizmalar sunarlar.