Sobes.tech
Middle

Vuex'teki mutasyonlar hakkında bana bilgi ver.

sobes.tech yapay zeka

AI'dan gelen yanıt

Vuex'teki mutasyonlar, depolama durumunu değiştirmek için tek yoldur. Bunlar senkron olup, durumu (state) ilk argüman olarak alır. İkinci argüman bir payload nesnesi olabilir.

Modül veya kök depolama nesnesindeki mutations nesnesinde tanımlanırlar. commit yöntemiyle çağrılırlar.

// Mutasyon tanımı
const store = new Vuex.Store({
  state: {
    count: 0
  },
  mutations: {
    increment (state) {
      state.count++ // Durumu değiştirme
    },
    incrementBy (state, payload) {
      state.count += payload.amount // Payload ile durumu değiştirme
    }
  }
})

// Mutasyonu çağırma
store.commit('increment')
store.commit('incrementBy', { amount: 10 })

Ana noktalar:

  • Senkron: Tüm mutasyonlar senkron olarak çalışır, bu da durum değişikliklerinin öngörülebilirliğini sağlar.
  • Yalnızca yol: Sadece mutasyonlar durumu doğrudan değiştirebilir.
  • commit: Mutasyonlar store.commit() yöntemiyle çağrılır.
  • Payload: Mutasyonlar, ek veriler içeren ikinci bir argüman - payload - alabilir.
  • Takip: Vuex Devtools, gerçekleştirilen tüm mutasyonları izler, hata ayıklamayı kolaylaştırır.

İşlemlerden (actions) farkları:

  • Senkron vs Asenkron: Mutasyonlar senkron, işlemler asenkron işlemler içerebilir.
  • Durumu doğrudan değiştirme vs Mutasyonları çağırma: Mutasyonlar durumu doğrudan değiştirir, işlemler mutasyonları çağırır.
Özellik Mutasyonlar İşlemler
Senkron Senkron Asenkron olabilir
Durum değişikliği Doğrudan durumu değiştirir Mutasyonları çağırır
Çağrı store.commit() store.dispatch()
Amaç Durum kaydı İş mantığı, asenkron işlemler