### 一、vuex是什么
Vuex是一个专门为Vue.js应用程序开发的状态管理模式。采用**集中式存储管理**应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方法发生变化。
#### 状态管理模式
小例子:
```
data () {
return {
count: 0
}
}
```
状态自管理应用包括:
* state,驱动应用的数据源
* view,以声明方式将state映射到视图
* actions,响应在view上的用户输入导致的状态变化。
**单向数据流**理念
但是,当我们的应用遇到多个组件共享状态时,单向数据流的简洁性容易破坏
* 多个视图依赖于同一个状态--传参的方法使得**多层嵌套的组件将会非常繁琐**,且**兄弟间组件**的状态传递无能为力。
* 来自不同视图的行为需要变更统一状态---**采用父子组件直接引用**或者通过**事件来变更和同步**状态的多份拷贝
因此,把组件的共享状态抽取出来,以一个全局单例模式管理。
通过定义和隔离状态管理中的各种概念并强制遵守一定的规则。使代码更结构化且易维护。
#### 什么时候使用?
不是大型单页应用,使用vuex可能是繁琐冗余的,最好不要使用Vuex。