Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。
State
完整的应用数据中心,应用的相关组件获取数据或更新数据,是整个应用程序的唯一数据中心。
Store
只有外部组件不能直接对State进行更改,数据中心管理员只能依靠dispatchaction(行为调度)或commitamutation(提交mutation)间接操作。
Getters
Getters的本质在于Vuexstore的computed属性,读取store/state的内容,Getters中的数据将被缓存,并且在数据更新时它所依赖的相关组件状态也会及时更新。
Mutations
当在应用程序中共享全局数据状态时,由于数据变化可能来自任何组件,因此难以定位和跟踪数据的状态。
所以Vuex建议用Mutations的方式改变数据,而不是直接进行修改,它的Vuedevtools工具非常精确地帮助我查找更改和修改的时间。
如果您使用过Redux,Mutations的概念与reducer非常相似,它的作用是改变数据状态。
Actions
当要执行一个异步任务或多个相关Mutations来更新数据状态时,我们需要Actions定义用于操作的函数,其中的第一个参数context可以获得相关属性,commit和getters,从而便于组织定义更复杂的逻辑。Actions是我们常用的接口数据请求获取数据,Actions经常被使用。
以Store/State为结束,我们使用了Store/State来定义和管理应用的核心数据,通过Compute属性在组件中调用来自Getters的数据,如果我们要操纵数据,我们可以调用注册的Actions方法,然后Actions调用相关的mutations来对数据操作。