Pagrindinė Redux terminija
Šioje pamokoje trumpai apžvelgsime pagrindines sąvokas ir terminus, kurių išmanymas būtinas toliau studijuojant Redux.
Pradėsime nuo veiksmo (action).
Tai tam tikras įvykis, kuris
apibūdina, kas atsitiko mūsų
programoje. Techniškai tai įprastas
JavaScript objektas,
kuriame yra laukas type, į kurį įrašome
veiksmo pavadinimą.
Antras svarbus veiksmo objekto laukas
yra laukas payload.
Jame bus talpinama naudinga apkrova
veiksmo. Pagal naudingą apkrovą suprantami
tam tikri duomenys, kurie perduodami
kaip veiksmo parametrai.
Taip pat šiame objekte gali būti ir kitų laukų su papildoma informacija.
Pavyzdžiui, sukurkime veiksmą
ir pavadinkime jį addOrderAction. Tegul
jis atsako už užsakymo pridėjimą.
Vadinasi, savybėje type nurodysime, kad
užsakymas pridėtas (orderAdded) į užsakymus
(orders). O payload nurodysime išsamiau,
koks tai užsakymas, pavyzdžiui - nudažyti
sieną:
const addOrderAction = {
type: 'orders/orderAdded',
payload: 'Paint a wall'
}
Kad nereikėtų kaskart rankiniu būdu rašyti objekto
su veiksmu, galime naudoti
tą vadinamąjį action creator - funkciją,
kuri kurs ir grąžins
mums objektą su veiksmu. Pavadinkime ją
addOrder. Parametru jai
perduosime reikalingą mums tekstą
savybei payload:
const addOrder = text => {
return {
type: 'orders/orderAdded',
payload: text
}
}
Kita svarbi sąvoka grandinėje - tai reducer (reduktorius) - funkcija, kuri priima dabartinę būseną ir objektą su veiksmu. Ši funkcija nusprendžia, kaip atnaujinti būseną ir grąžina jau atnaujintą būseną, jei tai būtina.
Kita sąvoka - saugykla (store) - tai objektas, kuriame saugoma dabartinė globali Redux programos būsena. Šis objektas turi metodą getState, kurio pagalba galima gauti dabartinę būsenos reikšmę.
Saugykla taip pat turi metodą dispatch. Iškviesti jį ir perduoti objektą su veiksmu - tai vienintelis būdas pakeisti būseną. Dėl to saugykla paleis reduktoriaus funkciją ir išsaugos prie savęs naują būsenos reikšmę.
Ir paskutinė sąvoka, kurią apžvelgsime šioje pamokoje - tai selektoriai. Selektoriai - tai specialios funkcijos, kurios žino, kaip išgauti informaciją iš būsenos, esančios saugykloje. Šios funkcijos yra ypač naudingos, kai programa plečiasi, ir padeda išvengti kodo kartojimo.
Išsamiau apie visas šias sąvokas ir apie jų pritaikymą praktikoje sužinosime iš kitų šio vadovėlio skyrių.