Middle
Pastāsti man par Vuex mutācijām.
sobes.tech AI
Atbilde no AI
Vuex mutācijas ir vienīgais veids, kā mainīt glabātuves stāvokli. Tās ir sinhroniskas un pieņem stāvokli (state) kā pirmo argumentu. Otrajā argumentā var būt payload objekts:
Tās tiek definētas mutations objektā moduļa vai galvenajā glabātuvē. Tās tiek izsauktas ar commit metodi:
// Mutācijas definīcija
const store = new Vuex.Store({
state: {
count: 0
},
mutations: {
increment (state) {
state.count++ // stāvokļa izmaiņa
},
incrementBy (state, payload) {
state.count += payload.amount // stāvokļa izmaiņa ar payload
}
}
})
// Mutācijas izsaukšana
store.commit('increment')
store.commit('incrementBy', { amount: 10 })
Galvenie punkti:
- Sinhroniskas: Visas mutācijas tiek izpildītas sinhroni, tas nodrošina prognozējamu stāvokļa izmaiņu sekvenci:
- Vienīgais veids: Tikai mutācijas var tieši mainīt glabātuves stāvokli:
commit: Mutāciju izsaukšanai tiek izmantotastore.commit()metode:- Payload: Mutācija var pieņemt otro argumentu - payload, kas satur papildu datus:
- Uzraudzība: Vuex Devtools uzrauga visas veiktās mutācijas, tas atvieglo atkļūdošanu:
Atšķirības no darbībām (actions):
- Sinhroniskas vs Asinhroniskas: Mutācijas ir sinhroniskas, darbības var saturēt asinhronas operācijas:
- Tieša stāvokļa izmaiņa vs Mutāciju izsaukšana: Mutācijas tieši maina stāvokli, darbības izsauc mutācijas:
| Raksturlielums | Mutācijas | Darbības |
|---|---|---|
| Sinhroniskas | Sinhroniskas | Var būt asinhronas |
| Stāvokļa izmaiņa | Tieši maina stāvokli | Izsauc mutācijas |
| Izsaukums | store.commit() |
store.dispatch() |
| Mērķis | Stāvokļa ieraksts | Biznesa loģika, asinhronas operācijas |