vuex中的辅助函数

2017-10-21  本文已影响924人  回调的幸福时光

了解

vuex提供了一些非常方便的辅助函数,比如mapState、mapGetter、mapMutation、mapAction。初学vuex时,并未深究以上函数,只是走马观花的看了看。

暴露问题

在使用vuex的时候,仅仅了解State、Getter、Mutation、Action、Module等概念,在使用过程中,业务功能逐渐增加,会出现很多个状态。当一个组件需要多个状态的时候,将这些状态都声明为计算属性会有些重复和冗余。

辅助函数

mapState

引入

import { mapState } from 'vuex

3种用法

如果使用箭头函数,当vuex的state和当前组件的state,含有相同的变量名称时,this获取的是vuex中的变量,而不是局部变量

computed: mapState([
  // 映射 this.count 为 store.state.count
  'count'
])
computed: {
    localComputed () {},
  ...mapState({})
}
也可以使用`...mapState([])`,但前提是映射的计算属性的名称与state的子节点名称相同,如果state在vuex的modules中,则不成功。
mapGetters

mapGetters将store中的getter映射到局部计算属性

computed: {
  ...mapGetters([
    'oneGetter',
    'anotherGetter'
  ])
}
mapMutations

使用mapMutations辅助函数将组件中的methods映射为store.commit调用。

methods: {
  // 将this.tips映射成 this.$store.commit('tips')
  ...mapMutations(['tips'])
}
mapAction

使用mapActions辅助函数将组件的methods映射成store.dispatch调用

methods: {
  // 将this.tips映射成 this.$store.dispatch('tips')
  ...mapActions(['tips'])
}
上一篇 下一篇

猜你喜欢

热点阅读