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:

jsxconst 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:

jsxconst 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.