什么是vuex

是什么

vuex一个专为vue.js应用程序开发的状态模式管理 组件数据统一管理
采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。

什么时候用

要构建一个中大型单页应用,涉及多个组件间共享状态时

主要组成

什么是vuex
Store
    每一个 Vuex 应用的核心就是 store(仓库)。“store” 基本上就是一个容器,它包含着你的应用中大部分的状态 (state)。
State
    驱动应用的数据源,用于保存所有组件的公共数据.。  
Getter
过滤数据
    可以将 getter 理解为 store 的计算属性, getters 的返回值会根据它的依赖被缓存起来,且只有当它的依赖值发生了改变才会被重新计算。
    
Mutations
    mutations 对象中保存着更改数据的回调函数。mutation 必须是同步函数。mutations 对象里的方法需要使用 store.commit 调用

Actions
    Action 提交的是 mutation 而不是直接变更状态。action 可以包含任意异步操作。actions 对象里的方法需要使用 store.dispatch 调用。
    Action 函数接受一个与 store 实例具有相同方法和属性的 context 对象,因此你可以调用 context.commit 提交一个 mutation,或者通过 context.state 和 context.getters 来获取 state 和 getters。

Modules
    将 store 分割成模块(module)。每个模块拥有自己的 state、mutation、action、getter、甚至是嵌套子模块——从上至下进行同样方式的分割。