Middle
Vuex'dagi mutatsiyalar haqida gapirib bering.
sobes.tech AI
AIdan javob
Vuex'dagi mutatsiyalar — bu ombor holatini o'zgartirishning yagona usulidir. Ular sinxron va holat (state) ni birinchi argument sifatida qabul qiladi. Ikkinchi argument payload obyekti bo'lishi mumkin.
Ular modul yoki asosiy ombor ob'ekti mutations obyektida aniqlanadi. Ularni commit metodi bilan chaqirish mumkin.
// Mutatsiya ta'rifi
const store = new Vuex.Store({
state: {
count: 0
},
mutations: {
increment (state) {
state.count++ // Holatni o'zgartirish
},
incrementBy (state, payload) {
state.count += payload.amount // Payload bilan holatni o'zgartirish
}
}
})
// Mutatsiyani chaqirish
store.commit('increment')
store.commit('incrementBy', { amount: 10 })
Asosiy nuqtalar:
- Sinxron: Barcha mutatsiyalar sinxron tarzda bajariladi, bu holat o'zgarishlarining oldindan aytib bo'ladiganligini ta'minlaydi.
- Faqat usul: Faqat mutatsiyalar holatni to'g'ridan-to'g'ri o'zgartirishi mumkin.
commit: Mutatsiyalarni chaqirish uchunstore.commit()metodidan foydalaniladi.- Payload: Mutatsiya ikkinchi argument sifatida payload qabul qilishi mumkin, bu qo'shimcha ma'lumotlarni o'z ichiga oladi.
- Kuzatuv: Vuex Devtools amalga oshirilgan barcha mutatsiyalarni kuzatadi, bu debuggingni osonlashtiradi.
Harakatlar (actions) bilan farqi:
- Sinxron vs Asinxron: Mutatsiyalar sinxron, harakatlar esa asinxron operatsiyalarni o'z ichiga olishi mumkin.
- Holatni to'g'ridan-to'g'ri o'zgartirish vs Mutatsiyalarni chaqirish: Mutatsiyalar holatni to'g'ridan-to'g'ri o'zgartiradi, harakatlar mutatsiyalarni chaqiradi.
| Xususiyat | Mutatsiyalar | Harakatlar |
|---|---|---|
| Sinxron | Sinxron | Asinxron bo'lishi mumkin |
| Holatni o'zgartirish | To'g'ridan-to'g'ri o'zgartiradi | Mutatsiyalarni chaqiradi |
| Chaqiruv | store.commit() |
store.dispatch() |
| Ma'nosi | Holat yozuvi | Biznes mantiq, asinxron operatsiyalar |