flux ne demek?

Flux

Flux, Facebook tarafından geliştirilen ve özellikle React uygulamaları için tasarlanmış bir uygulama mimarisidir. Tek yönlü veri akışı prensibine dayanır ve karmaşık uygulamalarda veri yönetimini kolaylaştırmayı hedefler. Flux, MVC (Model-View-Controller) mimarisindeki çift yönlü veri akışının neden olabileceği sorunları çözmek için tasarlanmıştır.

Temel Kavramlar:

  • Action (Eylem): Uygulamada meydana gelen bir olayı temsil eder. Örneğin, bir butona tıklama, bir formun gönderilmesi veya bir veri isteği gibi. Action'lar, dispatcher'a gönderilen basit JavaScript nesneleridir. Daha fazlası için: Action (Eylem)

  • Dispatcher: Uygulamadaki tüm veri akışını kontrol eden merkezi bir hub'dır. Action'ları alır ve kayıtlı tüm store'lara dağıtır. Dispatcher, action'ların store'lar tarafından belirli bir sırada işlenmesini sağlamak için kullanılır. Daha fazlası için: Dispatcher

  • Store (Depo): Uygulama durumunu (state) saklar ve günceller. Store'lar, dispatcher'dan gelen action'lara tepki verir ve durumlarını buna göre günceller. Bir store'un durumu değiştiğinde, bu değişimi görüntü katmanına (view) bildirir. Daha fazlası için: Store (Depo)

  • View (Görünüm): Uygulama durumunu kullanıcıya sunar. View'lar, store'lardan gelen verilere abone olurlar ve durum değiştiğinde kendilerini güncellerler. Kullanıcı etkileşimleri sonucu oluşan action'ları tetiklerler. Daha fazlası için: View (Görünüm)

Flux'un Veri Akışı:

  1. Bir View, bir Action tetikler.
  2. Action, Dispatcher'a gönderilir.
  3. Dispatcher, Action'ı tüm Store'lara dağıtır.
  4. Store'lar, Action'a göre kendi durumlarını günceller.
  5. Store'lar, View'ları değişiklik hakkında bilgilendirir.
  6. View'lar, yeni verilerle kendilerini yeniden render eder.

Avantajları:

  • Tek Yönlü Veri Akışı: Uygulama durumunu daha tahmin edilebilir hale getirir ve hata ayıklamayı kolaylaştırır.
  • Ayrık Bağımlılıklar: Store'lar birbirinden bağımsızdır ve bu da uygulamanın modülerliğini artırır.
  • Ölçeklenebilirlik: Büyük ve karmaşık uygulamaları yönetmek için uygundur.

Dezavantajları:

  • Karmaşıklık: Diğer mimarilere göre daha fazla boilerplate kod gerektirebilir.
  • Öğrenme Eğrisi: Yeni geliştiriciler için öğrenilmesi biraz zaman alabilir.

Flux'a Alternatifler:

  • Redux: Flux'un popüler bir uygulamasıdır ve daha basit bir yapı sunar.
  • Context API: React'in kendi durum yönetimi çözümüdür.
  • MobX: Daha az boilerplate kod gerektiren, tepkisel bir durum yönetimi kütüphanesidir.