Redux-də iki əsas ideya
Redux kitabxanasını öyrənməyə başlamazdan əvvəl, gəlin onun iki əsas ideyası ilə tanış olaq. Vəziyyətin idarə edilməsi ilə bağlı birinci ideyanı biz React-də adi bir sayğac nümunəsində nəzərdən keçirəcəyik:
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>
)
}
Bu kodda biz count dəyişəni üçün state görürük - bu,
sayğac üçün həqiqət mənbəyidir. Sonra biz
hərəkət (action) görürük - bu,
istifadəçinin klikləməsi ilə state-in yenilənməsini
təhrik edən hadisədir. Və nəhayət,
təsvir (view),
onun köməyi ilə biz istifadəçi interfeysini
göstəririk.
Beləliklə, sxem kifayət qədər sadədir:
düymə basılır - count state-i (State)
basılış (Action) nəticəsində dəyişir, nəticədə
təsvir (View) dəyişir - bizim vəziyyətimizdə
bu, ekrandakı rəqəmdir.
Lakin, əgər bizim eyni state-dən istifadə etməli olan çoxsaylı komponentlərimiz varsa, hər şey daha mürəkkəb olacaq. Əlbəttə ki, məsələn, state-i valideyn komponentlərə qaldırmaq olar, amma belə bir həll həmişə problemi aradan qaldıra bilməz. Bu halda Redux bizə tətbiqdə qlobal state-i ehtiva edən bir yer yaratmağı və bu state yeniləndikdə müəyyən davranış modellərini təklif edir. Məhz bunda birinci əsas ideya (!) öz ifadəsini tapır.
İkinci ideya dəyişilməzlik, yəni məlumatların dəyişdirilməməsi ilə bağlıdır. Əlbəttə ki, JavaScript-dən xatırlayırsınız ki, massivlər və obyektlər dəyişdirilə bilər. Məlumatların birbaşa dəyişdirilməsi Redux-da, digər freymvorklarda olduğu kimi, pis üslub sayılır və gözlənilməz nəticələrə gətirib çıxara bilər. Buna görə də Redux-da bizim ilkin obyektlər və massivlər dəyişilməz qalmalıdır, və biz onların yalnız kopyalarını dəyişə bilərik.
Redux-un birinci əsas ideyasının nədən ibarət olduğunu izah edin.
Redux-un ikinci əsas ideyasının nədən ibarət olduğunu izah edin.