Middle
Vuex-də mutasiyalar haqqında danış.
sobes.tech Süni İntellekt
AI-dan cavab
Vuex-də mutasiyalar anbarın vəziyyətini dəyişdirmək üçün yeganə yoldur. Onlar sinxron və ilk arqument kimi vəziyyəti (state) qəbul edir. İkinci arqument payload obyekt ola bilər.
Onlar modul və ya kök anbar obyektində mutations obyektində təyin olunur. commit metodu ilə çağırılırlar.
// Mutasiya təyini
const store = new Vuex.Store({
state: {
count: 0
},
mutations: {
increment (state) {
state.count++ // Vəziyyəti dəyişdirmək
},
incrementBy (state, payload) {
state.count += payload.amount // Payload ilə vəziyyəti dəyişdirmək
}
}
})
// Mutasiyanı çağırmaq
store.commit('increment')
store.commit('incrementBy', { amount: 10 })
Əsas nöqtələr:
- Sinxron: Bütün mutasiyalar sinxron şəkildə icra olunur, bu da vəziyyət dəyişikliklərinin proqnozlaşdırılmasını təmin edir.
- Yeganə üsul: Yalnız mutasiyalar vəziyyəti birbaşa dəyişə bilər.
commit: Mutasiyaları çağırmaq üçünstore.commit()metodundan istifadə olunur.- Payload: Mutasiya ikinci arqument qəbul edə bilər - payload, əlavə məlumatlar ehtiva edir.
- İzləmə: Vuex Devtools bütün həyata keçirilmiş mutasiyaları izləyir, debugging-i asanlaşdırır.
Əməliyyatlar (actions) ilə fərqlər:
- Sinxron vs Asinxron: Mutasiyalar sinxron, əməliyyatlar isə asinxron ola bilər.
- Birbaşa vəziyyət dəyişdirmə vs Mutasiyaları çağırmaq: Mutasiyalar vəziyyəti birbaşa dəyişir, əməliyyatlar mutasiyaları çağırır.
| Xüsusiyyət | Mutasiyalar | Əməliyyatlar |
|---|---|---|
| Sinxron | Sinxron | Asinxron ola bilər |
| Vəziyyət dəyişdirmə | Birbaşa vəziyyəti dəyişir | Mutasiyaları çağırır |
| Çağırış | store.commit() |
store.dispatch() |
| Məqsəd | Vəziyyətin yazılması | Biznes loqikası, asinxron əməliyyatlar |