什么是vuex?
vuex是vue.js推出的状态管理工具,采用的是集中式管理所有组件的状态,并以相应的规则,保证状态以一种可预测的方式发生变化。
这是vuex官网的图片,可以看出来是由一下及部分组成的
- state
存储的是状态,需要的组件中共享的数据 - mutations
是vuex中唯一能直接操作state中的状态,通过store.commit方法来更改state的状态(mutations是一个同步函数) - getter
getter类似于vue中的计算属性,是对state中状态进行加工处理之后的结果,同样状态是会被缓存的,只有所对应的依赖发生变化的时候才会被重新计算 - actions
处理一些异步操作。(如:需要依赖state中的状态来进行一些异步操作时,可在action中来提交mutations,而不是直接在mutats中来操作) - module
Module是store分割的模块,每个模块拥有自己的state、getters、mutations、actions。
const moduleA = {
state: { ... },
mutations: { ... },
actions: { ... },
getters: { ... }
}
const moduleB = {
state: { ... },
mutations: { ... },
actions: { ... }
}
store.state.a //moduleA
store.state.b //moduleB
- 辅助函数
Vuex提供了mapState、MapGetters、MapActions、mapMutations等辅助函数给开发在vm中处理store