SORU
11 Mayıs 2014, Pazar


Flux mimarisi, Mağaza ömrü nasıl başarıyorsun?

Flux hakkında okuyorum ama example Todo app bana bazı temel noktaları anlamak için çok basit olduğunu.

Bu Facebook gibi tek sayfalık bir uygulama düşününkullanıcı profil sayfaları. Her kullanıcının profil sayfasında, bazı kullanıcı bilgileri ve son mesaj, sonsuz kaydırma ile göstermek istiyoruz. Bir kullanıcının başka bir profil yönümüzü tayin edebiliriz.

Flux mimarisi, bu nasıl Saklar ve Memurları karşılık olur?

Kullanın PostStore kullanıcı başına ki, ya da genel bir mağaza var ki? Ne memurları hakkında, her biri için yeni bir Dağıtıcı oluşturmak istiyoruz “kullanıcı sayfası”, veya bir singleton kullanmak istiyorsunuz? Son olarak, " mimarlık “sayfa özel” rota yanıt Mağazalarında değişim? yaşam döngüsü yönetimi sorumludur

Ayrıca, sözde sayfa bir tek aynı türde verilerin birden fazla liste olabilir. Profil sayfasında, örneğin, her ikisi de göstermek istiyorumTakipçileriveİzler. Nasıl bir tek bu durumda UserStore çalışabilir? UserPageStore followedBy: UserStore follows: UserStore yönetmek istiyorsunuz?

CEVAP
11 Mayıs 2014, Pazar


Akı bir uygulama sadece bir Dağıtıcı olmalı. Tüm verilere bu merkez üzerinden akar. Tek bir Dağıtıcı olan tüm Mağaza yönetmek için izin verir. Bu #1 kendini günceller, ve sonra #2 #1 Mağaza devleti her Eylem ve kendisine göre Saklamak zorunda Deposu ihtiyacınız olduğunda önemli hale gelir. Akı bu durum büyük bir uygulamada bir ihtimal olduğunu varsayar. Bu, ideal bir durum olmasına gerek yoktur, ve geliştiriciler mümkünse bu karmaşıklığı önlemek için gayret göstermelisiniz. Ama tek Dağıtıcı zamanı geldiğinde hazır.

Mağaza tekiz. Ve mümkün olduğunca bağımsız ayrılmış müstakil bir sorgu bu evrenden bir Denetleyicisi-Görünüm -- kalmalıdır. Mağazaya tek yol Dağıtıcısı ile kaydeder geri geçer. Tek yol dışarı getter fonksiyonları ile. Mağazalar da kontrol Manzaralı yeni devlet, alıcılar kullanarak sorgulamak için zaman bilmek böylece onların durumu değiştiğinde bir olay yayınlayın.

Örnek uygulama PostStore Bir tek orada olurdu. Bu aynı bir mağaza "(sahte sayfa) bunun gibi daha FB mesajlarını farklı kullanıcıların görüntülendiği Haber," dedi. sayfadaki mesajları yönetmek olabilir Mantıksal etki mesaj listesi ve mesaj herhangi bir liste işleyebilir. Sözde sayfasından sözde sayfaya hareket ettiğimizde, deposu durumu yeni durumu yansıtacak şekilde yeniden başlatmak istiyoruz. Biz belki de istiyorum önbellek önceki devlet localStorage olarak bir iyileştirme için hareket ileri ve geri arasında sözde sayfaları, ama hevesim olurdu kurma PageStore bekler için tüm diğer depolar, yönetir ilişki ile localStorage için tüm mağazaları pseudo-sayfa ve sonra güncelleştirmeleri kendi devlet. PageStore PostStore etki alanı olan mesaj hakkında bir şey saklamak anlamına gelir. Sadece sözde sayfaları kendi etki, çünkü sahte bir sayfa belirli bir önbelleğe olup olmadığını ya da değil, biliyorum.

PostStore initialize() bir yöntem olurdu. Bu yöntem, her zaman bu ilk başlatma ve Eylem yoluyla alınan verilere dayalı bir devlet oluşturmak, Dağıtıcı ile bile eski Devlet temizleyin. Başka bir sözde sayfasından hareketli muhtemelen initialize() çağırma tetikleyecek PAGE_UPDATE bir eylem, içerecektir. Yerel önbellekten veri alma, sunucudan veri alma, işleme ve iyimser XHR hata Devletleri etrafında gereken detaylar var, ama bu genel bir fikir.

Pseudo-sayfa belirli bir uygulamanın tüm Depolar ihtiyacı var mı yoksa tamamen kullanılmamış olanları, bellek kısıtlamaları dışında yok etmek için herhangi bir neden olup olmadığından emin değilim. Ama mağazalarda genellikle bellek çok tüketmek yok. Sadece kontrol Manzarası yok olayın içinde dinleyicileri kaldırmak için emin olmak gerekir. Bu componentWillUnmount() yöntem Tepki yapılır.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Damien Walters

    Damien Walte

    20 AĞUSTOS 2006
  • InsideBlackBerry

    InsideBlackB

    14 Aralık 2009
  • Tahir Jahi

    Tahir Jahi

    6 Mart 2006