0Pricing
React Academy · Ders

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

  1. React Geliştiricileri için GraphQL Temelleri
  2. React'te Apollo Client Kurulumu
  3. useQuery ve useMutation Kancaları
  4. Apollo Önbelleği: Normalleştirme ve Güncellemeler
← React Academy Sayfasına Dön