Vue全家桶学习—Vuex的4个辅助函数

一、辅助函数

当一个组件需要获取多个状态时候,将这些状态都声明为计算属性会有些重复和冗余。为了解决这个问题,我们可以使用 mapState 辅助函数帮助我们生成计算属性,让你少按几次键。
script中引入辅助函数:

import { mapState, mapMutations, mapActions, mapGetters } from 'vuex'

二、实例

1、mapState 和 mapGetters

因为state和getters返回的是属性,也就是具体的值,所以mapState和mapGetters应该放在计算属性computed中。
例如:
现在store的state中有一个属性userName:
在这里插入图片描述
在Home.vue组件中通过mapState获取并显示在界面上:
在这里插入图片描述
computed中的代码:

  computed:{
    //通过辅助函数获取store中的state
    ...mapState(['userName'])
    //等价于:下面常规计算属性代码
/*    userName (){
      return this.$store.state.userName
    }*/
  }

页面中调用:
在这里插入图片描述
结果:
在这里插入图片描述
这样就可通过简单的...mapState(['userName'])来代替比较长的计算属性函数了。
mapGetters和mapState用法一样,在computed中调用即可,这里就只举例mapState了。

2、mapMutations和mapActions

因为mutations和actions返回的是函数,所以应该放在组件的methods属性中。
例如:
现在在store的mutations中由一tip函数,用于弹出欢迎当前用户弹窗:
在这里插入图片描述
希望在Home.vue组件调用该方法,能够在组件中弹窗。
在这里插入图片描述
上图中methods中的代码:简写了获取store中的mutation。

  methods:{
    //简写获取store中的mutations
    ...mapMutations(['tip'])
    //等价于
/*    tip(){
      this.$store.commit('tip');
    }*/
  }

组件中调用:在created函数中调用tip方法,实现欢迎弹窗。
在这里插入图片描述
效果:
在这里插入图片描述mapActions和mapMutations的用一样,既在nethods中声明即可,简化了引用store中的action和mutaion。

从上面的例子可以看到,辅助函数的好处就是帮助我们简化了获取store中state、getter、mutation和action。当然,不使用辅助函数一样可以实现上述功能,但是当一个组件中需要同时使用多个state时,辅助函数就会变得比较方便。

  • 3
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Vue 3中,你可以使用Vuex辅助函数来简化在组件中使用Vuex的操作。下面是使用Vuex辅助函数的步骤: 首先,确保已经安装了VuexVue 3。 在你的Vue 3项目中,创建一个store文件夹,并在其中创建一个store.js文件。在store.js文件中,你可以定义你的Vuex store,包括状态(state)、mutations、actions等。 ```javascript // store.js import { createStore } from 'vuex'; const store = createStore({ state: { // 状态 }, mutations: { // 修改状态的方法 }, actions: { // 异步操作的方法 }, }); export default store; ``` 在你的根组件(App.vue)中,使用`createApp`函数创建Vue实例时,将store传递给`use`方法,这样整个应用程序都可以访问到store。 ```javascript // App.vue import { createApp } from 'vue'; import store from './store'; createApp(App).use(store).mount('#app'); ``` 现在,你可以在任何组件中使用Vuex辅助函数来访问store中的状态和触发mutations或actions。 在组件中,你可以使用`mapState`辅助函数来将store中的状态映射到组件的计算属性中。 ```javascript // MyComponent.vue import { mapState } from 'vuex'; export default { computed: { ...mapState(['stateProperty']), }, }; ``` 你也可以使用`mapMutations`辅助函数来将mutations映射到组件的methods中,以便在组件中触发mutations。 ```javascript // MyComponent.vue import { mapMutations } from 'vuex'; export default { methods: { ...mapMutations(['mutationName']), }, }; ``` 最后,你可以使用`mapActions`辅助函数将actions映射到组件的methods中,以便在组件中触发actions。 ```javascript // MyComponent.vue import { mapActions } from 'vuex'; export default { methods: { ...mapActions(['actionName']), }, }; ``` 这样,你就可以在Vue 3中使用Vuex辅助函数来简化在组件中使用Vuex了。希望对你有所帮助!

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小绵杨Yancy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值