Middle
107
questionbank
Какую концепцию управления состоянием реализует Vuex в JavaScript?
AI答案
sobes.tech AI
Vuex реализует концепцию централизованного store для всех компонентов приложения Vue.js.
Ключевые понятия Vuex:
- State: Единый источник правды для данных приложения.
- Getters: Производные свойства state, используемые для вычисления или фильтрации данных.
- Mutations: Синхронные функции, изменяющие state. Являются единственным способом изменения state.
- Actions: Асинхронные операции, которые могут содержать любую произвольную логику и вызывают mutations.
- Modules: Позволяют разбивать store на более мелкие, самодостаточные единицы.
Пример работы с Vuex:
// mutation
const store = new Vuex.Store({
state: {
count: 0
},
mutations: {
increment (state) {
state.count++
}
},
actions: {
incrementAsync ({ commit }) {
setTimeout(() => {
commit('increment')
}, 1000)
}
},
getters: {
doubleCount (state) {
return state.count * 2
}
}
})
// вызов mutation из компонента
this.$store.commit('increment')
// вызов action из компонента
this.$store.dispatch('incrementAsync')
// получение state из компонента
this.$store.state.count
// получение getter из компонента
this.$store.getters.doubleCount
Vuex предоставляет структурированный и предсказуемый способ управления состоянием, особенно в больших SPA, за счет принудительного следования паттерну "однонаправленного потока данных".