React'te Apollo Client Kurulumu
ApolloProvider'ı yapılandırın, önbellek ve bağlantı zinciriyle Apollo istemcisini oluşturun ve bir GraphQL API'sine bağlanın
React'te Apollo Client Kurulumu, CoddyKit'te ücretsiz bir React Academy dersidir. Bu, 4 dersinin 2. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, React Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. React Academy kursu toplamda 4 dersten oluşur.
Apollo Client'ı Yükleme
@apollo/client ve graphql paketlerini yükleyin. graphql paketi, Apollo Client'ın sorgu belgelerini gql şablon etiketiyle ayrıştırabilmesi için gerektirdiği bir eş bağımlılıktır.
TypeScript projelerinde her iki paket de kendi tür tanımlarını içerir; bu nedenle @types paketlerine gerek yoktur.
ApolloClient Örneği Oluşturma
ApolloClient'ı bir önbellek ve bağlantıyla örneklendirin. En basit kurulum şöyledir: new ApolloClient({ cache: new InMemoryCache(), uri: '/graphql' }). uri kısaltması, arka planda bir HttpLink oluşturur.
Daha fazla denetim için bağlantı zincirini kendiniz oluşturun ve uri yerine link seçeneğine aktarın.
ApolloProvider
React uygulamanızı client prop'uyla ApolloProvider içine sarın: ApolloProvider client={client}. Bu işlem, Apollo Client örneğini React bağlamı aracılığıyla tüm alt bileşenlerin kullanımına sunar.
Bileşen ağacındaki her useQuery ve useMutation çağrısı, prop'ları bileşenler arasında aktarmanıza gerek kalmadan otomatik olarak bu istemciyi kullanır.
InMemoryCache: Normalleştirilmiş Önbellekleme
InMemoryCache, Apollo Client'ın varsayılan önbelleğidir. Getirilen verileri tür ve ID'ye göre normalleştirir ve her varlığı benzersiz bir önbellek anahtarı altında (ör. User:1) saklar. Herhangi bir sorgu User:1'i getirdiğinde, bu varlığın sonraki tüm okumaları güncel verileri alır.
Bu normalleştirme sayesinde, bir mutasyonda kullanıcıyı güncellemek, ek kod yazmadan o kullanıcıyı içeren her sorgu sonucunu otomatik olarak günceller.
HttpLink
HttpLink, Apollo Client'tan GraphQL sunucunuza yapılan HTTP aktarımını yönetir. Bunu uri ile, isteğe bağlı olarak da fetch, headers ve credentials ile yapılandırın.
Gelişmiş kullanım durumlarında, ayrık bağlantılar farklı işlemleri farklı uç noktalara yönlendirir: abonelikler WebSocket (WebSocketLink) üzerinden, sorgular ve mutasyonlar HTTP (HttpLink) üzerinden gönderilir.
setContext ile AuthLink
setContext'i @apollo/client/link/context içinden içe aktarın. Bir kimlik doğrulama bağlantısı oluşturun: const authLink = setContext((_, { headers }) => ({ headers: { ...headers, authorization: 'Bearer ' + getToken() } })). Bu bağlantıyı HttpLink'in önüne ekleyin: authLink.concat(httpLink).
setContext bağlantısı her isteğin öncesinde çalışarak her işleme dinamik olarak kimlik doğrulama üstbilgileri ekler.
Bağlantı Zincirini Birleştirme
Bağlantıları ApolloLink.from([authLink, errorLink, httpLink]) veya authLink.concat(httpLink) kullanarak birleştirin. Bağlantılar ara yazılım görevi görür: her bağlantı işlemi işler ve next() işlevine aktarır. Zincirdeki son bağlantı, gerçek HTTP isteğini gönderir.
Yaygın zincirler şunlardır: kimlik doğrulama bağlantısı (üstbilgi ekler) + hata bağlantısı (hataları işler) + HTTP bağlantısı (isteği gönderir).
Apollo Bağlantı Hatası
onError'ı @apollo/client/link/error içinden içe aktarın. Hata bağlantısı, GraphQL hatalarını ve ağ hatalarını genel olarak yakalar. UNAUTHENTICATED hatalarında oturum açma sayfasına yönlendirmek veya ağ hatalarında genel bir hata bildirimi göstermek için kullanın.
Hata bağlantısı zincirde HTTP bağlantısından önce yer almalıdır; ancak isteği yeniden denemek için forward(operation) çağrısını yapabilir.
Veri Getirme İlkesi Seçenekleri
cache-first (varsayılan): önbelleğe alınan verileri hemen döndürür; veriler güncel değilse arka planda yeniden getirir. network-only: her zaman sunucudan getirir ve önbelleği günceller. cache-and-network: önbelleği hemen döndürür VE verileri getirir, yanıt geldiğinde kullanıcı arayüzünü günceller. cache-only: yalnızca önbellekten okur, önbellekte yoksa hata verir. no-cache: her zaman getirir, önbelleğe hiçbir zaman yazmaz.
Veri güncelliği gereksinimlerinize göre seçim yapın: gösterge panoları genellikle cache-and-network kullanır; kullanıcı profili formları ise network-only kullanır.
Varsayılan Veri Getirme İlkesini Genel Olarak Ayarlama
Varsayılan fetchPolicy değerini InMemoryCache defaultOptions içinde ayarlayın: new ApolloClient({ defaultOptions: { watchQuery: { fetchPolicy: 'cache-and-network' } } }). Bireysel useQuery çağrıları bunu sorgu bazında geçersiz kılabilir.
Makul bir genel varsayılan belirlemek, her kanca çağrısında fetchPolicy belirtmek için gereken kalıp kod miktarını azaltır.
Apollo Client DevTools
Apollo Client DevTools tarayıcı uzantısı, Chrome DevTools'a bir Apollo paneli ekler. Önbelleğe alınan tüm sorguları ve mevcut verilerini gösterir, normalleştirilmiş önbelleği keşfetmenizi sağlar ve sorguları DevTools panelinden yeniden çalıştırmanıza olanak tanır.
Chrome Web Store'dan yükleyin ve istemciyi devtools: { enabled: true } ile başlatın (geliştirme kipinde varsayılan olarak etkindir).
Apollo Bağlantı Zincirini Birleştirme
Apollo Client'ın bağlantı zincirinde errorLink, httpLink'e göre nereye yerleştirilmelidir?
Ders Özeti
@apollo/client ve graphql paketlerini yükleyin, InMemoryCache ve bağlantı zinciriyle bir ApolloClient oluşturun, uygulamayı ApolloProvider içine sarın. Bağlantı zinciri authLink'i (belirteç ekler), errorLink'i (genel hata işleme) ve httpLink'i (HTTP aktarımı) birleştirir. Veri getirme ilkesi, önbellek ile ağ arasındaki önceliği belirler; InMemoryCache varlıkları tür+id'ye göre normalleştirir.
Apollo DevTools tarayıcı uzantısı, önbelleği incelemeyi ve hata ayıklamayı kolaylaştırır.
Sıkça Sorulan Sorular
“React'te Apollo Client Kurulumu” dersi ücretsiz mi?
Evet — “React'te Apollo Client Kurulumu” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve React Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. React Academy kursu toplamda 4 dersten oluşur.
“React'te Apollo Client Kurulumu” dersinde ne öğreneceğim?
ApolloProvider'ı yapılandırın, önbellek ve bağlantı zinciriyle Apollo istemcisini oluşturun ve bir GraphQL API'sine bağlanın React Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
React Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te React Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 2. dersidir.
“React'te Apollo Client Kurulumu” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu React Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her React Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- React Geliştiricileri için GraphQL Temelleri
- React'te Apollo Client Kurulumu
- useQuery ve useMutation Kancaları
- Apollo Önbelleği: Normalleştirme ve Güncellemeler