目录
#博学谷IT学习技术支持#

- import Vue from 'vue'
- import Vuex from 'vuex'
- Vue.use(Vuex)
- const store = new Vuex.Store({
-
- })
- export default store
state是放置所有公共状态的属性,如果你有一个公共状态数据 , 你只需要定义在 state对象中
如何在组件中获取count?
(1)原始形式- 插值表达式

(2) 计算属性 - 将state属性定义在计算属性中
(3) 辅助函数 - mapState
mapState是辅助函数,帮助我们把store中的数据映射到 组件的计算属性中, 它属于一种方便用法

- mutations: {
- // 方法里参数 第一个参数是当前store的state属性
- // payload 载荷 运输参数 调用mutaiions的时候 可以传递参数 传递载荷
- addCount (state) {
- state.count += 1
- }
- },
如何在组件中调用mutations
(1) 原始形式-$store
(2) 辅助函数 - mapMutations
state是存放数据的,mutations是同步更新数据,actions则负责进行异步操作
- actions: {
- // 获取异步的数据 context表示当前的store的实例 可以通过 context.state 获取状态 也可以通过context.commit 来提交mutations, 也可以 context.diapatch调用其他的action
- getAsyncCount (context) {
- setTimeout(function(){
- // 一秒钟之后 要给一个数 去修改state
- context.commit('addCount', 123)
- }, 1000)
- }
- }
(1)原始调用 - $store
(2) 辅助函数 -mapActions
除了state之外,有时我们还需要从state中派生出一些状态,这些状态是依赖state的,此时会用到
getters
模块化中的命名空间
默认情况下,模块内部的 action、mutation 和 getter 是注册在全局命名空间的——这样使得多个
模块能够对同一 mutation 或 action 作出响应。
这句话的意思是 刚才的user模块还是setting模块,它的 action、mutation 和 getter 其实并没有区
分,都可以直接通过全局的方式调用
但是,如果我们想保证内部模块的高封闭性,我们可以采用namespaced来进行设置
