Sobes.tech
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()
მიზანი მდგომარეობის ჩანაწერი ბიზნეს-ლოგიკა, ასინქრონული ოპერაციები