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
命名空间
未设置命名空间:
设置了命名空间: