Redux Nedir?
Redux, JavaScript uygulamalarında state yönetimini sağlayabilen bir frameworktür. Flux teknolojisiyle temelleri aynı olsa da değişiklikler bulunmaktadır. Bunlar, state değiştirme logici ve geçerli statein kendisidir. Aynı nesne üstünde 2 state yükleme problem yaratır. Bu yüzden reduxda store mantığı bulunuyor. Yeni nesneyi de store tutar ve eskiyi de kaybeder. Böylelikle Redux bir statein her sürümünü takip edip, eski sürümüne de dönmeye olanak sağlayacaktır.
Redux Nasıl Yüklenir?
- Npm install –save redux = Stabil Redux Paketi
- Npm install –save react – redux
- Npm install –save-dev redux-devtools = Redux Developer Tools
- Npm paket yöneticisinden de reduxı yükleme yapabilirsiniz.
Redux Bileşenleri
ActionCreator
Bir statein güncellenmesi adına action tarafından tetiklenmesi gerekmektedir. Nasıl güncellenilmesi gerektiği, hangi fonksiyonun çalışması da burada belirlenir.
Store
Statelerin değerlerinin tutulmuş olduğu depo olarak düşünebilirsiniz. Flux’da birden fazla da store bulunurken, Redux’da yalnızca bir adet store bulunmaktadır ve her işte burada yapılmaktadır.
Reducer
Reducerlar storeda yapılabilecek değişiklikleri state’i değiştirmeden statenin kopyasını alıp, değişiklikleri de üzerinde yapmaktadır. State direkt olarak işlenmeyip, bunun yerine de parçalanır ve her bir parçasını da kopyalar. Daha sonrasındaysa bütün bu parçalar da yeni bir state içerisinde birleştirilmektedir. Bu sayede de eski ve yeniler bir arada saklanmaktadır.
Provider
Store’un tüm uygulamaya etkisini göstermesini sağlayan ve uygulamanın etrafını sarmalayacak olan bir yapı olmaktadır.
Connect
Statein bileşeni güncelleme isterse eğer connecti kullanıp kendini sarmalayacaktır.
Redux 3 Temel Prensip Barındırır!
Tek state, createStore’dir. Function, birden fazla reducerı combine ederek tek bir storeye döndürür. İkinci bir model olduğu zaman tek store olmuş olur. Bu storeu uygulamanın istenildiği şekilde componentine rahat bir şekilde gönderilmesi demektir.
State değiştirilemez. Direkt olarak object üstündeki propertylere erişip, değişiklik yapılamamaktadır. Her şey reducerlar üstünden ilerler. Bu durumda kontrol altında olur. Immutable olmayanları reducerdan return edilmemektedir.
Stateteki her yapılan değişiklikte basit bir functiondan ibaret olmaktadır. Bu durumda application karmaşık olan hal aldığında yönetilmesi de zorlaşmamaktadır.
[youtube https://www.youtube.com/watch?v=tOtGnCBXU3U&w=560&h=315]