Základné termíny v Reduxe
V tejto lekcii si krátko prejdeme základné pojmy a termíny, ktorých znalosť je nevyhnutná pre ďalšie štúdium Reduxu.
Začneme akciou (action).
Je to určitá udalosť, ktorá
opisuje, čo sa stalo v našej
aplikácii. Technicky je to obyčajný
JavaScript objekt,
obsahujúci pole type, do ktorého zapíšeme
názov akcie.
Druhým dôležitým poľom objektu s akciou
je pole payload.
Bude obsahovať užitočné zaťaženie
akcie. Pod užitočným zaťažením sa rozumie
niektoré dáta, ktoré sa prenášajú
ako parametre do akcie.
Tiež v tomto objekte môžu byť aj ďalšie polia s doplnkovými informáciami.
Vytvorme napríklad akciu
a pomenujme ju addOrderAction. Nech
zodpovedá za pridanie objednávky.
Takže vo vlastnosti type uvedieme, že
objednávka bola pridaná (orderAdded) do objednávok
(orders). A v payload uvedieme podrobnejšie,
čo za objednávku, napríklad - vymaľovať
stenu:
const addOrderAction = {
type: 'orders/orderAdded',
payload: 'Paint a wall'
}
Aby sme nemuseli zakaždým písať objekt
s akciou manuálne, môžeme použiť
takzvaný action creator - funkciu,
ktorá bude vytvárať a vracať
nám objekt s akciou. Pomenujme ju
addOrder. Parametrom jej budeme
odovzdávať potrebný text pre
vlastnosť payload:
const addOrder = text => {
return {
type: 'orders/orderAdded',
payload: text
}
}
Ďalší dôležitý pojem v reťazci je reducer (redaktor) - funkcia, ktorá prijíma aktuálny stav a objekt s akciou. Táto funkcia rozhoduje, ako aktualizovať stav a vracia už aktualizovaný stav, ak je to potrebné.
Ďalší pojem - úložisko (store) - je to objekt, v ktorom je uložený aktuálny globálny stav Redux aplikácie. Tento objekt má metódu getState, pomocou ktorej je možné získať aktuálnu hodnotu stavu.
Úložisko má tiež metódu dispatch. Zavolať ju a odovzdať objekt s akciou - je to jediný spôsob, ako zmeniť stav. Výsledkom úložisko spustí funkciu-reducer a uloží si novú hodnotu stavu.
A posledný pojem, ktorý si v tejto lekcii pozrieme - sú selektory. Selektory sú špeciálne funkcie, ktoré vedia, ako extrahovať informácie zo stavu, ktorý sa nachádza v úložisku. Tieto funkcie sa ukazujú ako obzvlášť užitočné pri rozrastaní aplikácie a pomáhajú vyhnúť sa opakovaniu kódu.
Viac o všetkých týchto pojmoch a o ich využití v praxi sa dozvieme v ďalších častiach tohto tutoriálu.