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: Mutasyonlarstore.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 |