0Pricing
React Academy · Ders

Uzak Uygulamalar Arasında Durum ve Yönlendirme Paylaşma

Bağımsız dağıtılan mikro ön yüzler arasında tek bir React Router örneği ve Zustand deposu paylaşın.

Uzak Uygulamalar Arasında Durum ve Yönlendirme Paylaşma, CoddyKit'te ücretsiz bir React Academy dersidir. Bu, 4 dersinin 3. 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.

Durum Paylaşımı Zorluğu

Her Module Federation uzak uygulaması bağımsız olarak derlenip dağıtılır. Durumu (React useState, Context, Zustand depoları) kendi JavaScript modül kapsamı içinde bulunur. Ana uygulama ile uzak uygulamalar durumu otomatik olarak paylaşmaz; paylaşımı açıkça tasarlamanız gerekir.

1. Seçenek: Paylaşılan Durum Olarak URL

Durum paylaşmanın en basit mekanizması URL'dir: Her uzak uygulama, uzak uygulamalar arası iletişim olmadan URL parametrelerini, sorgu dizelerini ve karma değerlerini okuyabilir. Bu yöntem birincil gezinme durumu, filtre değerleri ve yer imi oluşturulup bağlantı yoluyla paylaşılması gereken her türlü durum için iyi çalışır.

2. Seçenek: Gevşek Bağlantı için CustomEvents

Tarayıcının EventTarget'ı üzerinden CustomEvents, uzak uygulamaların doğrudan içe aktarma yapmadan iletişim kurmasını sağlar. Bir uzak uygulama window.dispatchEvent(new CustomEvent('cart:updated', { detail: cart })) çağrısını yapar ve başka bir modül (ana uygulama veya diğer uzak uygulamalar) window.addEventListener('cart:updated', handler) ile dinler. Paylaşılan bir modüle gerek yoktur.

3. Seçenek: Paylaşılan Durum Uzak Uygulaması

Zustand veya Jotai deposunu dışa açan özel bir "durum uzak uygulaması" oluşturun. Hem ana uygulama hem de diğer uzak uygulamalar bu durum uzak uygulamasından içe aktarır ve aynı depo örneğini alır; bunun nedeni deponun paylaşılan bir tekil örnek olmasıdır. Bu yaklaşım karmaşık paylaşılan durumlar (kimlik doğrulama, sepet, kullanıcı tercihleri) için güçlüdür, ancak bir dağıtım bağımlılığı ekler.

4. Seçenek: Durum Ana Uygulamaya Aittir, Geri Çağırmaları O İletir

Kabuk (ana uygulama) tüm paylaşılan duruma sahip olur ve bunu uzak uygulamalara özellikler veya Context aracılığıyla aktarır. Uzak uygulamalar onCartUpdate gibi geri çağırmaları alır ve yönlendirme işlemlerini özellik olarak kullanır. Bu yaklaşım durumu ana uygulamada merkezileştirir, ancak ana uygulamanın uzak uygulama API'lerini bilmesini gerektirerek sıkı bağlantı oluşturur.

Module Federation'da React Router

React Router'ın geçmiş ve konum durumu bir Router bileşeni (BrowserRouter veya createBrowserRouter) tarafından sağlanır. Bir Module Federation kurulumunda tam olarak bir Router bulunmalıdır; her uzak uygulamaya bir Router yerleştirmek, birbiriyle yarışan birden çok yönlendirme bağlamı oluşturarak gezinme çakışmalarına neden olur.

Router Ana Uygulamaya Aittir

Mimari kural şudur: Router'ı ana uygulama (kabuk) sağlar. Uzak uygulamalar yönlendirme özelliklerini ana uygulamadan alır (veya doğrudan URL'yi okur). Bir uzak uygulama hiçbir zaman kendi BrowserRouter'ını oluşturmamalıdır; bu, ana uygulamanın Router'ıyla çakışır ve tüm uygulamadaki gezinmeyi bozar.

Uzak Uygulamalar Arasında Context Paylaşma

React Context değerleri belirli bir React örneğine ve Context nesnesine bağlıdır. Bir Context'in ana uygulama ile uzak uygulama arasında çalışması için her ikisinin de aynı Context nesnesini aynı kaynaktan içe aktarması gerekir; bu kaynak genellikle paylaşılan durum uzak uygulaması veya paylaşılan yardımcı programlar paketidir. React tekil örneği, aynı Context'in tüm uzak uygulamalarda çalışmasını sağlar.

Kabuk Mimarisi Deseni

Temiz bir Module Federation mimarisinde kabuk (ana uygulama) şunlara sahip olur: HTML kabuğu, Router sağlayıcısı, kimlik doğrulama Context'i, tema/tasarım belirteci sağlayıcısı ve genel gezinme. Uzak uygulamalar kendi özellik alanlarının içeriğine sahip olur. Kabuk, uygulama ayrıntılarını bilmeden uzak uygulamaları düzene birleştirir.

Sıkı Bağlantıdan Kaçınma

Module Federation'daki en büyük anti-desen, ana uygulama ile uzak uygulama arasındaki sıkı bağlantıdır: Ana uygulama uzak uygulamadan türleri içe aktarır, uzak uygulama ana uygulamadan bileşenleri içe aktarır veya her ikisinin de aynı anda güncellemesi gereken ortak bir npm paketi paylaşırlar. Bu bağlantılar bağımsız dağıtımın amacını boşa çıkarır.

İletişim Sözleşmeleri

Ana uygulama ile uzak uygulamalar arasındaki açık sözleşmeleri tanımlayın: Uzak bileşenin kabul ettiği özellikleri, gönderdiği CustomEvents olaylarını ve okuduğu URL parametrelerini belirtin. Bu sözleşmeleri paylaşılan bir tür paketinde TypeScript arayüzleri olarak belgeleyin. Böylece ekipler, üzerinde anlaşılmış sözleşme kapsamında bağımsız olarak geliştirme yapabilir.

Module Federation'da React Router'ın Yerleştirilmesi

React Router sağlayıcısı (BrowserRouter), Module Federation mimarisinde nereye yerleştirilmelidir?

Ders Özeti

Module Federation uzak uygulamaları arasında durum paylaşımı; URL durumunu (en basit yaklaşım), CustomEvents olaylarını (gevşek bağlı), paylaşılan bir durum uzak uygulamasını (merkezî depo) veya özellik olarak aktarılan ana uygulama sahipliğindeki durumu kullanabilir. Tek Router sağlayıcısının sahibi ana uygulama olmalıdır; uzak uygulamalar hiçbir zaman kendi Router'larını oluşturmamalıdır. TypeScript arayüzleri aracılığıyla tanımlanan açık iletişim sözleşmeleri ekiplerin bağımsız kalmasını ve gerçek anlamda bağımsız dağıtımı sağlar.

Sıkça Sorulan Sorular

“Uzak Uygulamalar Arasında Durum ve Yönlendirme Paylaşma” dersi ücretsiz mi?

Evet — “Uzak Uygulamalar Arasında Durum ve Yönlendirme Paylaşma” 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.

“Uzak Uygulamalar Arasında Durum ve Yönlendirme Paylaşma” dersinde ne öğreneceğim?

Bağımsız dağıtılan mikro ön yüzler arasında tek bir React Router örneği ve Zustand deposu paylaşı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 3. dersidir.

“Uzak Uygulamalar Arasında Durum ve Yönlendirme Paylaşma” 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. Modül Federasyonu: Dinamik Çalışma Zamanı İçe Aktarmaları
  2. Ana Makine ve Uzak React Uygulamalarını Yapılandırma
  3. Uzak Uygulamalar Arasında Durum ve Yönlendirme Paylaşma
  4. Sürümleme, Dağıtım ve Düzenleme
← React Academy Sayfasına Dön