Razmena podataka između Redux aplikacije i servera
Ovaj odeljak će biti za zahtevne učenike, koji se nisu zaustavili na postignutom u Redux-u i odlučili su da dođu do kraja ovog udžbenika. U naredna dva odeljka ćemo dotaknuti rad aplikacije Redux sa asinhronom logikom, povezati našu aplikaciju sa serverskom stranom i naučiti je da razmenjuje podatke sa njom.
Iz prethodnih odeljaka znamo da u osnovi rada Redux aplikacije leži sinhroni mehanizam. Osnovni koraci rada se sastoje u slanju akcija pri nastanku nekog događaja u aplikaciji, zatim ažuriranju stanja u store-u funkcijom-reduktorom, obaveštavanju komponenti aplikacije o promeni stanja i shodno tome prikazivanju nove vrednosti stanja u komponentama.
U stvarnom životu često se dešava da aplikaciji
bude potrebna i asinhrona logika, na primer pri
radu sa HTTP API zahtevima i dobijanjem podataka
sa nekog spoljnog servera. Zbog toga da bi naš
'sinhroni' Redux store mogao da radi
sa takvom asinhronom logikom koristi se tako
zvano middleware - programski dodatak,
koji je posrednik ili spojka između
store-a naše aplikacije i, na primer,
servera, sa kojim ćemo započeti rad u ovoj
glavi udžbenika.
Za Redux je napravljeno mnogo takvih middleware-a,
međutim najšire rasprostranjeni među
njima i zvanično preporučeni pri radu Redux
aplikacija sa asinhronom logikom za sada ostaje
Redux Thunk.
Ovaj dodatak pomaže nam da koristimo obične
funkcije (ili thunk-ove), koje mogu da sadrže
u sebi asinhronu logiku, kao što su
setTimeout, Promises, async/await,
za interakciju sa našim store-om. Što se tiče
samog termina, thunk - to je kod koji
obavlja neki odloženi posao.
Sada, kada smo se malo upoznali sa tim, kako da radimo u Redux-u sa asinhronom logikom, možemo da pristupimo realizaciji ove faze u našoj aplikaciji. Treba da postignemo da naša aplikacija može da komunicira sa nekim spoljnim serverom, primajući od njega i prenoseći mu podatke. Drugim rečima, ispred nas čeka zanimljiva i veoma važna tema. Počnimo.