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

vuex 实现了一个单向数据流,在全局拥有一个 state 存放数据,当组件要更改 state 中的数据时,必须通过 Mutation 提交修改信息, Mutation 同时提供了订阅者模式供外部插件调用获取 state 数据更新。
而当所有异步操作(常用于调用后端接口异步获取更新数据)或批量的同步操作需要走 Action ,但 Action 也是无法直接修改 state 的,还是需要通过 Mutation 来修改 State 的数据。最后,根据 State 的变化,渲染到视图上。

state

vuex 的唯一数据源,如果获取多个 state,可以使用 …mapState 。

getter

可以将 getter 理解为计算属性, getter 的返回值根据它的依赖缓存起来,依赖发生变化才会被重新计算。

mutation

更改 Vuex 的 store 中的状态的唯一的方法是提交 mutation 。每个 mutation 都有一个字符串的事件类型和一个回调函数。这个回调函数就是我们实际进行状态更改的地方。

Module

命名空间

未设置命名空间:
image.png
设置了命名空间:
image.png