vuex

vuex:

1.包含state,getters,mutations,actions,modules

而getters与mutations内的函数都有一个(state)参数getters的可以传入playload,state都是局部的限定在自身模块内的state

actions内的的函数有一个({state,rootState,rootGetters,commit,dispatch},playload)

rootState,rootGetters是全局默认参数,如rootGetters是可以获取vuex所有的getters用法rootGetters['..../...']

2.vuex可以包含多模块,在new Vuex.store({

  ...

  modules:{

    a,

    b

  }

})

而在子模块里也包含了state,getters,mutations,actions  还有一个namespace  用来划分模块作用域

3.若子模块设置了namespace:true ;获取调用子模块如下

this.$store.state    (a子模块的在state.a里面)

this.$store.getters['a/getName']   

this.$store.commit('a/mutationFunc')

this.$store.dispatch('a/actionFunc')

4.mapState,mapGetters,mapMutations,mapActions是引入到业务模块调用state,getters,mutations,actions的语法糖

mapState,mapGetters是放在computed里面,mapMutations,mapActions是放在methods里面

...mapState(['loginInfo']),   //这个是store主模块里的 ,在引入后直接this.loginInfo即可获取
...mapState('a',['rongyunInfo']),  //这个是a子模块的 ,在引入后直接this.rongyunInfo即可获取

...mapMutations('a',['saveRongyunTargetId','saveRongyunCustomInfo']),  // 这个是a子模块的 ,,在引入后直接this.saveRongyunCustomInfo()即可调用

 

参考:https://segmentfault.com/a/1190000009434398

posted @ 2019-05-04 20:53  little_ab  阅读(155)  评论(0编辑  收藏  举报