Vue.use(Vuex)
### 3. 创建仓库Store
要使用 Vuex,我们要创建一个实例 `store`,我们称之为仓库,利用这个仓库 `store` 来对我们的状态进行管理。
//创建一个 store const store = new Vuex.Store({});
---
## 四、包含模块
* **State**:定义了应用状态的数据结构,可以在这里设置默认的初始状态。
* **Getter**:允许组件从 store 中获取数据,`mapGetters` 辅助函数仅仅是将 store 中的 `getter` 映射到局部计算属性。
* **Mutation**:是唯一更改 store 中状态的方法,而且要是`同步函数`。
* **Action**:用于提交 `mutation`,而不是直接变更状态,可以包含任意异步操作。
* **Module**:可以将 store 分割成模块(module)。每个模块拥有自己的 `state`、`mutation`、`action`、`getter`、甚至是嵌套子模块
**Vuex的作用类似全局对象,Vuex 使用单一状态树,用一个对象State包含了整个应用层级的所有状态,你可以理解为这些状态就是一堆全局变量和数据。**

### 1. State
假设我们有一个全局状态 `count` 的值为 5。那么,我们就可以将其定义为 `state` 对象中的 `key` 和 `value`,作为全局状态供我们使用。如下:
* Vue2.x中:
//创建一个 store const store = new Vuex.Store({ //state存储应用层的状态 state:{ count:5 //总数:5 } });
* Vue3.x中:
import { createStore } from 'vuex' export default createStore({ state: { count:5 //总数:5 } }
### 2. Getters
**可以认为,`getters` 是store的计算属性,类似于`computed`,对state里的数据进行一些过滤,改造等等**
假设我们要在`state.count`的基础上派生出一个新的状态`newCount`出来,就适合使用我们的 `getters`
`getters` 接受 `state` 作为其第一个参数
* Vue2.x中:
const store = new Vuex.Store({ //state存储应用层的状态 state:{ count:5 //总数:5 }, getters:{ newCount:state => state.count * 3 } });
在组件中获取 `{{newCount}}` 方式:
export default { computed: { newCount(){ return this.$store.getters.newCount; } } };
* Vue3.x中:
import { createStore } from 'vuex' export default createStore({ state: { count:5 //总数:5 }, getters: { newCount:state => state.count * 3 }, }
在组件中获取 `{{newCount}}` 方式: