Redux'ta Temel Terimler
Bu derste, Redux'ı ileri düzeyde öğrenirken hakim olunması gereken temel kavram ve terimlere kısaca değineceğiz.
Eylem (action) ile başlayacağız.
Bu, uygulamamızda olan biteni tanımlayan
bir olaydır. Teknik olarak, içine eylemin
adını yazdığımız bir type alanı içeren
sıradan bir JavaScript nesnesidir.
Eylem nesnesinin ikinci önemli alanı
payload alanıdır.
Bu alan, eylemin yararlı yükünü
(içeriğini) barındıracaktır. Yararlı yük,
eyleme parametre olarak iletilen bazı
verileri ifade eder.
Ayrıca bu nesnede ek bilgiler içeren başka alanlar da bulunabilir.
Örnek olarak bir eylem oluşturalım ve
adını addOrderAction koyalım. Bunun
bir sipariş eklemekten sorumlu olduğunu
varsayalım.
type özelliğinde, siparişin eklendiğini
(orderAdded) ve siparişlere (orders)
ait olduğunu belirteceğiz. payload
içinse örneğin, ne siparişi verildiğini
daha ayrıntılı belirteceğiz - bir duvarı
boyamak gibi:
const addOrderAction = {
type: 'orders/orderAdded',
payload: 'Bir duvarı boya'
}
Her seferinde eylem nesnesini manuel
yazmamak için, sözde bir action creator
(eylem oluşturucu) kullanabiliriz - bu,
bizim için eylem nesnesi oluşturan ve
döndüren bir fonksiyondur. Ona
addOrder adını verelim.
payload özelliği için ihtiyacımız olan
metni parametre olarak ileteceğiz:
const addOrder = text => {
return {
type: 'orders/orderAdded',
payload: text
}
}
Zincirdeki bir sonraki önemli kavram ise reducer (indirgeyici) - mevcut durumu ve eylem nesnesini parametre olarak alan bir fonksiyondur. Bu fonksiyon, durumu nasıl güncelleyeceğine karar verir ve gerekirse güncellenmiş state'i döndürür.
Bir sonraki kavram - depo (store) - Redux uygulamasının mevcut global durumunun saklandığı bir nesnedir. Bu nesnenin, mevcut state değerini almak için kullanılabilecek getState adlı bir metodu vardır.
Deponun ayrıca dispatch adlı bir metodu daha vardır. State'i değiştirmenin tek yolu, bu metodu çağırıp bir eylem nesnesi iletmektir. Sonuçta, depo (store) reducer fonksiyonunu çalıştıracak ve yeni state değerini kendi içinde kaydedecektir.
Bu derste ele alacağımız son kavram ise seçiciler (selectors). Seçiciler, depoda bulunan state'ten bilgi nasıl çıkarılacağını bilen özel fonksiyonlardır. Uygulama büyüdükçe bu fonksiyonlar özellikle kullanışlı hale gelir ve kod tekrarını önlemeye yardımcı olur.
Tüm bu kavramlar ve bunların pratikte uygulanması hakkında daha fazla bilgiyi bu eğitimin sonraki bölümlerinden öğreneceğiz.