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()
Максаты Абалды жазуу Бизнес-логика, асинхрондук операциялар