Vuex 的基本使用
Vuex和redux是一个状态管理模式,它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。
每一个 Vuex 应用的核心就是 store(仓库)。“store”基本上就是一个容器,它包含着你的应用中大部分的状态 (state)。
Vuex 和单纯的全局对象有以下两点不同:
- Vuex 的状态存储是响应式的。当 Vue 组件从 store 中读取状态的时候,若 store 中的状态发生变化,那么相应的组件也会相应地得到高效更新。
- 你不能直接改变 store 中的状态。改变 store 中的状态的唯一途径就是显式地提交 (commit) mutation。这样使得我们可以方便地跟踪每一个状态的变化,从而让我们能够实现一些工具帮助我们更好地了解我们的应用。
- state ——》储存初始化数据
- getters ——》对State 里面的数据二次处理(对数据进行过滤类似filter的作用)比如State返回的为一个对象,我们想取对象中一个键的值用这个方法
- mutations ——》对数据进行计算的方法全部写在里面(类似computed) 在页面中触发时使用
-
this.$store.commit('mutationName')
触发Mutations方法改变state的值 - actions ——》 处理Mutations中已经写好的方法 其直接触发方式是
this.$store.dispatch(actionName)
- modules ——》模块化Vuex
(1)安装
vuex安装
(2)然后就是新建一个store
文件专门用于我们vuex的状态管理;
- 在
store
文件夹下新建一个一个index.js
- 引入
vue
、vuex
并注册 - 导出
vuex
- 定义了一个state对象,这个对象包含了全部应用层级状态(全局共用的数据)
引入
(3)然后我们还需要在main.js
中注册这个vuex
仓库
注册
这样,我们安装及引用的一个vuex初始化就完成了。
(4)接下来我们在任意一个页面如test.vue
中尝试获取到我们开始在state
对象中定义的city
值了