Middle
Räägi mulle Vuex mutatsioonidest.
sobes.tech AI
Vastus AI-lt
Vuex-muutatus on ainus viis salvestiseisundi muutmiseks. Need on sünkronsed ja võtavad oleku (state) esimese argumendina. Teise argumendina võib olla payload objekt:
Need on määratletud mutations objekti kaudu moodulis või põhisahtlis. Need kutsutakse välja commit meetodi abil:
// Muutuse määratlus
const store = new Vuex.Store({
state: {
count: 0
},
mutations: {
increment (state) {
state.count++ // oleku muutmine
},
incrementBy (state, payload) {
state.count += payload.amount // oleku muutmine payload-iga
}
}
})
// Muutuse väljakutse
store.commit('increment')
store.commit('incrementBy', { amount: 10 })
Peamised punktid:
- Sünkronsed: Kõik mutatsioonid täidetakse sünkronselt, mis tagab oleku muutuste ennustatavuse:
- Ainult viis: Ainult mutatsioonid saavad otse muuta salvestise olekut:
commit: Mutatsioonide väljakutseks kasutataksestore.commit()meetodit:- Payload: Mutatsioon võib võtta teise argumendina - payload, mis sisaldab täiendavaid andmeid:
- Jälgimine: Vuex Devtools jälgib kõiki tehtud mutatsioone, mis lihtsustab silumist:
Erinevused tegevustega (actions):
- Sünkronsed vs Asünkronsed: Mutatsioonid on sünkronsed, tegevused võivad sisaldada asünkroonseid operatsioone:
- Otse oleku muutmine vs Mutatsioonide kommit: Mutatsioonid muudavad olekut otse, tegevused kommit'ivad mutatsioone:
| Omadus | Mutatsioonid | Tegevused |
|---|---|---|
| Sünkronsus | Sünkronsed | Võivad olla asünkroonsed |
| Oleku muutmine | Otse muudab olekut | Kommit'ivad mutatsioone |
| Kutsumine | store.commit() |
store.dispatch() |
| Eesmärk | Oleku salvestamine | Äri-logika, asünkroonsed operatsioonid |