Middle
მითხარით Vuex-ის მუტაციებზე.
sobes.tech AI
პასუხი AI-სგან
Vuex-ში მუტაციები არის ერთადერთი გზა მდგომარეობის შეცვლისთვის. ისინი სინქრონულია და იღებენ მდგომარეობას (state) როგორც პირველ არგუმენტს. მეორე არგუმენტად შეიძლება იყოს payload ობიექტი:
მუტაციები განსაზღვრულია mutations ობიექტში მოდულში ან ძირითადი საცავში. ისინი იძახიან commit მეთოდით:
// მუტაციის განსაზღვრა
const store = new Vuex.Store({
state: {
count: 0
},
mutations: {
increment (state) {
state.count++ // მდგომარეობის შეცვლა
},
incrementBy (state, payload) {
state.count += payload.amount // payload-ით მდგომარეობის შეცვლა
}
}
})
// მუტაციის გამოძახება
store.commit('increment')
store.commit('incrementBy', { amount: 10 })
ძირითადი მახასიათებლები:
- სინქრონული: ყველა მუტაცია სინქრონულია, რაც უზრუნველყოფს ცვლილებების პროგნოზირებადობას:
- მარტო გზა: მხოლოდ მუტაციები შეუძლიათ პირდაპირ შეცვალონ საცავი:
commit: მუტაციების გამოძახებისთვის გამოიყენებაstore.commit()მეთოდი:- Payload: მუტაცია შეიძლება მიიღოს მეორე არგუმენტი - payload, რომელიც შეიცავს დამატებით მონაცემებს:
- დაკვირვება: Vuex Devtools აკვირდება ყველა განხორციელებულ მუტაციას, რაც გამარტივებს დათვალიერებას:
მოქმედებებთან (actions) განსხვავებები:
- სინქრონული vs ასინქრონული: მუტაციები სინქრონულია, მოქმედებები შეიძლება შეიცავდეს ასინქრონულ ოპერაციებს:
- მხოლოდ შეცვლა vs მუტაციების დაკომიტება: მუტაციები პირდაპირ შეცვლიან მდგომარეობას, მოქმედებები კომიტავენ მუტაციებს:
| მახასიათებელი | მუტაციები | მოქმედებები |
|---|---|---|
| სინქრონული | სინქრონულია | შეიძლება იყოს ასინქრონული |
| მდგომარეობის შეცვლა | პირდაპირ შეცვლის მდგომარეობას | კომიტავენ მუტაციებს |
| კითხვა | store.commit() |
store.dispatch() |
| მიზანი | მდგომარეობის ჩანაწერი | ბიზნეს-ლოგიკა, ასინქრონული ოპერაციები |