Sobes.tech
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 kasutatakse store.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