Vuex是一个专门为Vue.js应用程序设计的状态管理模式。它集中管理组件的状态,并通过一种可预测的方式改变状态。在Vuex中,应用程序的所有组件共享一个单一的状态树,并且状态的变化是通过提交mutations来进行。
以下是Vuex的基本概念和代码实例说明:
- State(状态):Vuex使用一个集中的状态树来存储应用程序的所有状态。state对象定义了应用程序的初始状态,可以在组件中通过this.$store.state来访问。
示例代码:
// 在store中定义state
const store = new Vuex.Store({
state: {
count: 0
}
})
// 在组件中访问state
console.log(this.$store.state.count)
- Mutations(变化):Mutations是用于改变状态的函数,它接收state作为第一个参数。Mutations是同步操作,用来保证状态的可追踪性。在组件中,可以通过commit方法提交一个mutation来改变状态。
示例代码:
// 在store中定义mutation
const store = new Vuex.Store({
state: {
count: 0
},
mutations: {
increment(state) {
state.count++
}
}
})
// 在组件中提交mutation
this.$store.commit('increment')
- Actions(动作):Actions用于组织和处理异步操作,它可以提交一个或多个mutation来改变状态。Actions可以包含任意异步操作,如调用API、延迟等。
示例代码:
// 在store中定义action
const store = new Vuex.Store({
state: {
count: 0
},
mutations: {
increment(state) {
state.count++
}
},
actions: {
incrementAsync(context) {
setTimeout(() => {
context.commit('increment')
}, 1000)
}
}
})
// 在组件中分发action
this.$store.dispatch('incrementAsync')
- Getters(计算属性):Getters用于计算状态,它类似于组件中的计算属性。可以基于状态树的状态进行一些具体的操作,然后将结果返回。
示例代码:
// 在store中定义getter
const store = new Vuex.Store({
state: {
count: 0
},
getters: {
doubleCount(state) {
return state.count * 2
}
}
})
// 在组件中使用getter
console.log(this.$store.getters.doubleCount)
通过以上基本概念的使用,我们可以更好地管理和追踪应用程序的状态,并且可以在任意组件中访问和改变状态。
标签:基本,count,状态,vuex,认知,state,组件,Vuex,store From: https://blog.csdn.net/zxcv321zxcv/article/details/145106215