CodeBlanks Logo Icon CodeBlanks

Context nedir?

Context'in prop drilling yerine veri paylaşmanın yolu olduğunu öğrenirsin.

Context nedir?

Context, bileşen ağacının derinliklerine veri aktarmanın React'in resmî yoludur. Normalde veriyi props ile elden ele taşırsın; bu prop drilling olarak bilinir.

Prop drilling kısa ağaçlarda sorun değildir ama dört-beş seviye inildiğinde aradaki bileşenler kullanmadıkları veriyi taşımak zorunda kalır. Context, veriyi doğrudan ihtiyaç duyulan bileşene ulaştırır.

Tipik kullanımlar: tema (koyu/açık), dil (tr/en), oturum açmış kullanıcı. Bu veriler pek çok yerde okunur ve props olarak geçmek yorucudur.

Ne zaman context?

Context her durumda kullanılmaz. İki-üç seviye derinlik için hâlâ props yeterlidir; okunurluğu da iyidir. Context'i küresel hissedilen veriler için sakla.

İyi adaylar: tema, yerel ayar (locale), kimlik doğrulama durumu, genel bildirimler. Kötü adaylar: tek bir bileşenin form verisi ya da tek bir liste için items — bunlar yerel state olarak kalmalıdır.

Context her değişimde tüm tüketen bileşenleri yeniden çizer. Bu yüzden çok sık değişen veriyi context'e koymak performansı düşürebilir; ileri seviyede bunun çözümlerini göreceğiz.

Uygulama TemaBaşlığı bağlamı

Aşağıdaki iskeleti tamamla. ThemeContext adında bir context nesnesi oluştur; createContext'e "light" varsayılan değerini ver. Sonucu dışa aktar.

Başlangıç kodu

App.jsx
// ThemeContext'i buraya tanımla
import { createContext } from "react";

Örnek çözüm

App.jsx
import { createContext } from "react";

const ThemeContext = createContext("light");

export default ThemeContext;

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Prop drilling ne demektir?

  • State'i yukarı taşımak
  • Veriyi context ile taşımak
  • Veriyi props ile katman katman taşımak Doğru cevap
  • useEffect ile veri çekmek

Açıklama: Prop drilling props ile katman katman taşımaktır.

2 Context kullanımı

Soru
Tema ve dil gibi ____ veriler context için uygundur.
Cevap
Tema ve dil gibi küresel veriler context için uygundur.

Açıklama: Küresel veriler context için idealdir.

3 Context kavramlarını eşleştir

Kavram Anlamı
Prop drilling Katman katman props
Context Küresel veri
Tema Tipik kullanım
useContext Okuma kancası

Başlangıç bölümündeki tüm dersler