Photo by Eco Warrior Princess on Unsplash

REACT STATE MANAGEMENT

React State Management Yöntemleri (React Context ve useReducer sonrasında Redux’a Gerek Var mı? )

React Hook konusunu anlatırken useReducer yazısında bu konu hakkında yazacağım bahsetmiştim. Bu soru hem bana gelen sorular arasında sıkça soruluyor hem de internette bu konuyla ilgili baya bir konuşulmuş

Frontend Development With JS
3 min readApr 15, 2021

--

Bu konu ile Mark Erikson yazmış olduğu güzel bir yazı buldum. Dileyen direk yazının ingilizcesini okuyarak direk kaynağından erişebilir. Ben bu yazıyı yorumlayarak kendi önceden yazmış olduğum yazılara gönderme yaparak anlatmaya çalışacağım.

Context ve Redux aynı şeyler midir ?

Context ve Redux aynı şeyler değildir.

Context VDOM Tree içerisinde bir düğümde bir veri bağlamı oluşturup bu veriyi Provider ile sağlayıp, Consumerlar ile kullanılabilir olmasıdır.

Redux ise State Yönetimini Flux örüntüsü üzerinden gerçekleştirir.

Flux Gerçekleştirimi

Context bir State Yönetim Aracı mıdır ?

React State yönetimi setState, useState ve useReducer kullanarak yaparsınız. Context ise daha çok Dependency Injection node içerisindeki context (bağlamı) diğer node’lara bu veriyi geçirmeyi sağlayan bir altyapı sağlıyor.

Context ve useReducer, Redux ile Değiştirebilir mi ?

Context & useReducer ile ortak ve örtüşen noktaları olsada, Redux temel bazı ekstra yetenekler vardır. (Redux Middleware (Thunk, Saga vb..) , Persist Mechanism , Redux Dev Tool Extension, vb… )

Ortak Nokta: Context ve useReducer ile Flux mimarisinin benzer bir yapısını oluşturabiliyoruz. Örnek How to use React Context Effectively gibi Kent C. Dodds. Context bir Store gibi kullanıp, useReducer dispacth üzerinden çalıştırıp, reducer üzerinden state yönetimi gerçekleştirebiliyoruz.

Ne zaman React Context Kullan malı?

Virtual DOM üzerinde bileşenlerin bazılarında mevcut olan değeri, React VDOM bir bölüm veya tüm ağaç düğümüne erişilebilir kılmak istediğiniz durumlarda kullanabilirsiniz. Örneğin: i18n(dil opsiyonları), theme(dark, light) vb…

Ne zaman React Context ile Birlite useReducer Kullan malı?

Uygulamanızın belli bölgelerinde görece karmaşık state management (yönetim) ihtiyaçları olduğu durumlarda..

Ne zaman Redux Kullan malı?

  • Uygulamanın bir çok bileşeninden ortak uygulama durumlarına erişim ve bunların güncellenmesi gerekiyor ise,
  • Uygulama durumu zaman içerisinde sık sık güncelleniyorsa
  • Bu durumları güncelleme mantıkları ve akışları (durum geçişleri) karmaşıksa..
  • Uygulamanın kod altyapısı oldukça büyük ve üzerinde birden fazla geliştirici aynı anda geliştirme yapıyor ise…
  • Uygulamanızdaki durumun ne zaman, neden ve nasıl güncellendiğini anlayabilmek ve zaman içinde durum değişiklikleri görselleştirmek istediğinizde.
  • Side Effect (Async…) , Kalıcılık ve Persistance yönetmek için hazır bir takım araçlara ihtiyacınız var ise..

Redux veya Alternatif State Yönetim kütüphanelerini kullanmanız gerekir.

Referanslar

Okumaya Devam Et 😃

Bu yazının devamı veya yazı grubundaki diğer yazılara erişmek için bu linke tıklayabilirsiniz.

--

--