Akı düzenini anlama


12

Aslında akı desenini inceliyorum ve mağazalarla ilgili anlayamadığım bir şey var .

Tam olarak nedir?

Birçok makale okudum ve alanla ilgili olduğu anlaşılıyor.

Bunun api çağrıları veya arka uç çağrıları ile ilgili "soyut" kısım olduğu anlamına mı geliyor?

Benim için çok açık değil.

Edit: Açısal fabrika ile aynı şey olabilir mi? Uzak verileri getirme, bir iş görevi yapma veya bazı uygulama durumlarını kaydetme (örneğin mevcut kullanıcı bağlı)?


1
Tam olarak neden bahsettiğinize ilişkin bir bağlantı yararlı olacaktır. Şunu mu demek istediniz: "flux pattern"? fluxxor.com/what-is-flux.html
DougM


Flux, yayınlama / abone olma modelinden önce tüm verilerin dağıtıcıdan geçtiği bir kısıtlamadan başka bir şey değildir. Verilerin geriye doğru gitmemesini (ve karışıklığa neden olmamasını) garanti eder. "Mağaza", "İşlem" gibi şeyler, sistemin Bileşenlerini ve aktarılan Verileri söylemenin başka bir yoludur.
kiwicomb123

Yanıtlar:


24

Tamam, sizi Adım Adım açıklamama izin verin

1 Flux nedir?

  • Bir desen
  • Merkezi dağıtım programı
  • Tek yönlü veri akışları
  • Liste öğesi

Buna bir sebepten dolayı Flux diyorlar.

Akı Uygulamaları

  • Facebook Akısı
  • Alt
  • Cezir
  • çuvallatmak
  • NuclearJS
  • Fluxible

resim açıklamasını buraya girin

Flux ile Sohbet

Tepki : Hey Eylem, birisi bu "Kursu Kaydet" düğmesini tıkladı.

Eylem : teşekkürler tepki! Görev dağıtıcıya bir eylem oluşturucu kaydettirdim, bu nedenle görev dağıtıcı, bakım veren tüm mağazalara bildirimde bulunmalıdır.

Sevk görevlisi: Bir kursun kaydedilmesini kimin umursadığını göreyim. Ah! Mağaza benimle bir geri arama kaydetti, bu yüzden ona bildireceğim.

Mağaza : Hi dispatcher! Güncelleme için teşekkürler! Verilerimi gönderdiğiniz yükle güncelleyeceğim. O zaman önemseyen React bileşenleri için bir olay yayacağım.

Tepki : Ooo! Mağazadan parlak yeni veriler! Bunu yansıtacak şekilde kullanıcı arayüzünü güncelleyeceğim!


Flux API'sı


register (function callback) - “Hey dağıtıcı, eylemler gerçekleştiğinde beni çalıştır. -Store”

unregister (string id) - “Hey dağıtıcı, bu eylem hakkında endişelenmeyi bırak. -Store”

waitFor (dizi kimlikleri) - “Önce bu mağazayı güncelleyin. -Store”

dispatch (object loadload) - “Hey dağıtıcı, mağazalara bu eylemi anlatın. -Aksiyon"

isDispatching () - “Şu anda geri aramaları göndermekle meşgulüm.”

yani aklımızdaki soru şu:

Flux Yayınlama-Abone Olma Modeli mi?

Pek değil.

İki şekilde farklılık gösterir:

1.Her yük, kayıtlı tüm geri aramalara gönderilir.

2. Geri aramalar diğer geri aramaları bekleyebilir

özet

Flux, tek yönlü veri akışları için bir kalıptır Eylemler olayları kapsüle eder Dispatcher, geri çağrıları tutan merkezi bir merkezdir Mağazalar uygulama durumunu tutar Birçok uygulama


Benim ilk sorunum devlet uzak api varlıkların farklı verilere sahip olmasını sağlar: - /
mfrachet

devlet tarafından ne demek istiyorsun? adı verilen değişikliği yayarlarsa, React View olarak adlandırılır ve yine durum değişikliği yöntemi olarak adlandırılır
Dhaval Patel

Flux ile bir uygulama yaptığımı itiraf ediyorum. Bir API ile uğraşıyorum ve daha sonra verileri mağazalarımın içine kaydediyorum. Kullanıcılar uzak verileri değiştirirse ne olur? Hem istemci hem de sunucu arasında bir fark olacak
mfrachet

şimdi neden nerede bulabilirim. Tüm dağıtıcı ve mağaza yapacak ileri görüntülemek için, neden eylem doğrudan görünüm güncelleme olamaz. neden aracılar var
Muhammad Umer

@MuhammadUmer: Dispatcher uygulama için bir tanesidir ve mağaza uygulama yedek bileşen kaldırmak için tanıtıldı aracıları tanıttı
Dhaval Patel

1

Basit bir örnek ararken ( https://github.com/facebook/flux/tree/master/examples/flux-todomvc/ ), “mağazalar uygulama içindeki belirli bir alan için başvuru durumunu yönetir.” uygulamanın bir yönünün durumu ve onu değiştirmek için tüm kod hakkındaki veriler. Dağıtım Programından yeni bir güncelleme geldiğinde, tüm Mağazalar bunu görür, yanıt olarak verilerini nasıl güncelleyeceğine karar verir ve ardından verilerin değiştiğini Görünümler'e bildirir. Örneklerde Mağazalar, "görünmeyen ileti dizileri listesi" (Dağıtım Programının yeni bir iletinin geldiğini veya eski bir iletinin okunduğunu ve Görünümlerin ileti dizilerini kullanıcıya görüntülediğini bildirdiği) ve "geçerli çalma süresi ve durum."

Daha teknik olarak: bunlar, güncellemeleri almak için Geri Gönderen'i Geri Gönderenlere kaydeden çerçevenin ara katmanıdır, ardından verilerin durumu değiştiğinde Görünümleri bildirir. (Görünümler daha sonra eylemleri Dağıtıcıya geri gönderebilir.) Uyguladıkları soyut bir arabirim vardır; burada her Mağaza, Dağıtıcıya bir geri arama kaydeder ve olayları Görünümlere yayınlar, ancak her Mağaza belirli bir etki alanını somut bir şekilde temsil eder. (Karşı örnekler var mı?)


0

Depolar, kodun uygulama durumunu ve karmaşık mantığı depolayan alanlardır. Bunun bir nedeni, birden çok görünümün aynı verileri kullanması, ancak bunları farklı bir şekilde göstermesi veya belirli bir alan için tüm verileri değil, bazılarını göstermesidir. Örneğin, bir kullanıcı oturum açar ve adını, soyadını, e-postasını, fotoğrafını, şehrini, adres numarasını, telefon numarasını vb. Alırsınız. Bu bilgiler ayrı görünümlerde görüntülenir. Verileri görünümler arasında çoğaltmak yerine, kullanıcının verilerini depolayan UserStore adında bir Mağaza kullanabiliriz. Bu, depolanan mantık veya verinin değiştirilmesi gerektiğinde "değişiklik yapmak için tek bir yer" vererek sistemi basitleştirir. Mağaza kullanmak için başka nedenler de var, ancak bence en belirgin olanı bu.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.