⊗jsrtPmHkCxt 8 of 47 menu

React'ta Context

Bir sonraki hook'u öğrenmeye geçmeden önce, React'ta context kavramını ele almamız gerekiyor.

Normalde verileri, üst bileşenlerden alt bileşenlere props'lar aracılığıyla iletirdik. Bu yöntem, az sayıda bileşeniniz varsa ve props'ları üst bileşenden istediğiniz bileşene, alt bileşenler üzerinden 2-3 kereden fazla iletmemeniz gerekiyorsa iyidir.

Bu yöntem ayrıca, ara bileşenlerde bu props'lar hiç kullanılmıyorsa (böyle bir probleme prop drilling denir) veya aynı verileri çok sayıda bileşene iletmeniz gerekiyorsa, son derece sakıncalı hale gelebilir ve çeşitli sorunlara yol açabilir.

Bu gibi durumlarda, üst bileşenin verilerini, alt bileşenin bileşen ağacındaki konumundan bağımsız olarak, props'lar aracılığıyla iletmeden, herhangi bir alt bileşen için erişilebilir kılan context bize yardımcı olabilir. Buna göre, verileri yalnızca ihtiyaç duyan bileşenler alacaktır.

Context'ten yararlanmak için onu oluşturmanız gerekir. Öncelikle, MyContext.js dosyasını oluşturalım ve içine createContext fonksiyonunu içe aktaralım:

import { createContext } from 'react';

Şimdi context nesnesini oluşturalım, onu MyContext değişkenine atayalım ve dışa aktarmayı unutmayalım. Bizim durumumuzda, createContext içine başlangıç değeri olarak null ayarladık, çünkü bizim için önemli değil (sadece boş parantez de bırakılabilirdi). Varsayılan olarak belirlenen değer, başka bir değer bulunamazsa, context okunurken ortaya çıkacaktır. Bu değer herhangi bir türde olabilir:

export const MyContext = createContext(null);

Bir sonraki derste, ayrı dosyalarda bulunan birkaç bileşenden oluşan bir uygulama oluşturacağız. Tüm bileşenler bir dosyada olsaydı, context oluşturmak için ayrı bir dosya yapmaz ve onu dışa aktarmazdık.

Şimdi MyContext.js dosyasını, boş App bileşenine - verileri iletmeyi planladığımız bileşene - içe aktaralım:

import { MyContext } from './MyContext.js';

MyContext.js dosyasını oluşturun ve onu, derste anlatıldığı gibi, boş App bileşenine içe aktarın.

Türkçe
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenЎзбекOʻzbekTiếng Việt
Web sitesinin çalışması, analiz ve kişiselleştirme için çerezleri kullanıyoruz. Veri işleme, Gizlilik Politikası'na uygun olarak gerçekleşir.
tümünü kabul et özelleştir reddet