Dy Ide Bazë në Redux
Para se të fillojmë të studiojmë bibliotekën Redux, le të njihemi me dy idetë e saj bazë. Idenë e parë, që ka të bëjë me menaxhimin e gjendjes, do e shqyrtojmë me shembullin e një numëruesi të zakonshëm në state në React:
function Counter() {
// State
const [count, setCount] = useState(0)
// Action:
function clickHandler() {
setCount(count + 1)
}
// View:
return (
<div>
<span>{count}</span>
<button onClick={clickHandler}>+</button>
</div>
)
}
Në këtë kod ne shohim state
për variablin count - ky është
burimi i së vërtetës për numëruesin. Pastaj shohim
veprim (action) - një ngjarje,
e cila me klikimin e përdoruesit shkakton
përditësimin e state. Dhe, së fundi,
pamje (view),
me të cilën ne shfaqim
ndërfaqen e përdoruesit.
Kështu që skema është mjaft e thjeshtë:
butoni shtypet - state count (State)
me shtypjen (Action) ndryshon, prandaj
ndryshon pamja (View) - në rastin tonë
ky është numri në ekran.
Megjithatë, gjithçka do të jetë më e ndërlikuar nëse kemi shumë komponentë, të cilët duhet të përdorin të njëjtin state. Mundet, sigurisht, për shembull të ngrejmë state te komponentët prind, por një zgjidhje e tillë nuk mund gjithmonë të na çlirojë nga problemi. Redux në këtë rast na ofron të krijojmë një vend të vetëm në aplikacion, që do të përmbante gjendjen globale dhe modele të caktuara sjelljeje kur përditësohet kjo gjendje. Pikërisht kjo është ideja e parë bazë (!).
Idea e dytë lidhet me imutabilitetin, domethënë me pandryshueshmërinë e të dhënave. Ju, sigurisht, mbani mend nga JavaScript, se vargjet dhe objektet mund të ndryshohen. Ndryshimi i të dhënave direkt në Redux, si dhe në korniza të tjera konsiderohet si praktikë e keqe dhe mund të çojë në pasoja të paparashikueshme. Prandaj në Redux objektet dhe vargjet tona fillestare duhet të mbeten imutabile, ndryshimin mund t'i bëjmë vetëm kopjeve të tyre.
Shpjegoni, në çfarë konsiston ideja e parë bazë e Redux.
Shpjegoni, në çfarë konsiston ideja e dytë bazë e Redux.