Osnovni pojmovi u Redux-u
U ovoj lekciji ćemo kratko proći kroz osnovne koncepte i termine čije je poznavanje neophodno za dalje učenje Redux-a.
Počećemo sa akcijom (action).
To je određeni događaj koji
opisuje ono što se desilo u našoj
aplikaciji. Tehnički, to je običan
JavaScript objekat,
koji sadrži polje type, u koje upisujemo
naziv akcije.
Drugo važno polje objekta akcije
je polje payload.
Ono će sadržati korisni teret
akcije. Pod korisnim teretom se podrazumevaju
neki podaci koji se prosleđuju
kao parametri akciji.
Takođe, u ovom objektu mogu postojati i druga polja sa dodatnim informacijama.
Hajde da za primer kreiramo akciju
i nazovemo je addOrderAction. Neka
ona odgovara za dodavanje porudžbine.
Znači u svojstvu type ćemo naznačiti da
je porudžbina dodata (orderAdded) u porudžbine
(orders). A u payload ćemo detaljnije navesti,
koja je to porudžbina, na primer - okrečiti
zid:
const addOrderAction = {
type: 'orders/orderAdded',
payload: 'Paint a wall'
}
Da ne bismo svaki put pisali objekat
akcije ručno, možemo koristiti
tzv. action creator - funkciju,
koja će kreirati i vraćati
nam objekat akcije. Nazvaćemo je
addOrder. Kao parametar ćemo joj
proslediti željeni tekst za
svojstvo payload:
const addOrder = text => {
return {
type: 'orders/orderAdded',
payload: text
}
}
Sledeći važan pojam u lancu je reducer (reduktor) - funkcija koja prihvata trenutno stanje i objekat akcije. Ova funkcija odlučuje kako da ažurira stanje i vraća već ažurirano stanje (state), ako je to neophodno.
Sledeći pojam je skladište (store) - to je objekat u kome se čuva trenutno globalno stanje Redux aplikacije. Ovaj objekat ima metod getState, pomoću kojeg možemo dobiti trenutnu vrednost stanja.
Skladište ima takođe metod dispatch. Pozvati ga i proslediti objekat akcije - to je jedini način da se promeni stanje. Kao rezultat store će pokrenuti funkciju-reduktor i sačuvati kod sebe novu vrednost stanja.
I poslednji pojam koji ćemo razmotriti u ovoj lekciji je selektori. Selektori su specijalne funkcije, koje znaju kako da izvuku informaciju iz stanja koje se nalazi u skladištu. Ove funkcije su posebno korisne kada aplikacija raste i pomažu da se izbegne ponavljanje koda.
Detaljnije o svim ovim pojmovima i o njihovoj primeni u praksi ćemo saznati iz narednih poglavlja ovog udžbenika.