如何使用 Vuex 中的mapGetters 辅助函数

https://vuex.vuejs.org/zh/guide/getters.html#mapgetters-%E8%BE%85%E5%8A%A9%E5%87%BD%E6%95%B0

  • 使用场景:假如你想在某个组件里使用Vuex store 中存储的state的某个属性值,一般的话,我们可以通过计算属性computed: 写一个方法来获取 $store.state.xxx.属性,然后在页面中显示,但是这样有时候会有点麻烦,我们想着可不可以直接使用,不需要再写计算属性,这个时候我们就可以用到mapGetters, 将数据的某些属性放在getters中(比如长度length)将其封装并导出
    1. 首先 在组件中 导入 mapGetters : import { mapGetters} from ‘Vuex’

    2. 在组件的computed:{}使用 …mapGetters([ “这里面写你在getters中封装的方法” ])

    3. 假如你在getters.js 封装了如下 (cartList 为store中存储的state) :export

      default {
      
       cartLength(*state*) {
      
        return *state*.cartList.length;
      
       },
      
       cartList(*state*) {
      
        return *state*.cartList;
      
       },
      
      };
      
    4. 组件中

       computed: {
      
        ...mapGetters(["cartLength", "cartList"]),
      
       }
      
    5. 之后你在template中可以直接使用 cartLength,cartList

       <div>{{cartLength}}</div>
      
    6. 如果你想将一个 getter 属性另取一个名字,使用对象形式 然后直接这样使用{{Length}} 就行

      computed: {
      
        ...mapGetters({
      	Length: 'cartLength',
      	List:'cartList'
      }),
      },
      
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Vuex 辅助函数是指一些用于简化在 Vue 组件使用 Vuex函数。以下是一些常用的辅助函数: 1. mapState:用于将 store 的状态映射到组件的计算属性。可以通过对象字面量或数组来指定要映射的状态。 ```javascript import { mapState } from 'vuex'; export default { computed: { ...mapState(['count']), // 或者使用对象字面量 ...mapState({ message: (state) => state.someModule.message }) } } ``` 2. mapGetters:用于将 store getters 映射到组件的计算属性。与 `mapState` 类似,可以通过对象字面量或数组来指定要映射的 getters。 ```javascript import { mapGetters } from 'vuex'; export default { computed: { ...mapGetters(['doneTodosCount']), // 或者使用对象字面量 ...mapGetters({ doneTodosCount: 'doneTodosCount' }) } } ``` 3. mapMutations:用于将 store 的 mutations 映射到组件的方法。同样可以通过对象字面量或数组来指定要映射的 mutations。 ```javascript import { mapMutations } from 'vuex'; export default { methods: { ...mapMutations(['increment']), // 或者使用对象字面量 ...mapMutations({ add: 'increment' }) } } ``` 4. mapActions:用于将 store 的 actions 映射到组件的方法。与 `mapMutations` 类似,可以通过对象字面量或数组来指定要映射的 actions。 ```javascript import { mapActions } from 'vuex'; export default { methods: { ...mapActions(['incrementAsync']), // 或者使用对象字面量 ...mapActions({ addAsync: 'incrementAsync' }) } } ``` 这些辅助函数可以帮助我们在组件更方便地使用 Vuex 的状态、getters、mutations 和 actions。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值