vuex中...mapMutations、...mapState的简单使用

本文介绍了Vuex在Vue2到Vue3中mapMutations和mapState的使用方式变化。在Vue2中,需要手动在组件中调用$store.commit来提交mutation,而在Vue3中,通过引入mapMutations辅助函数,可以直接将mutation方法映射到组件的方法中。同样,对于state的获取,Vue2中直接使用$store.state,Vue3则可以借助mapState将state属性映射到计算属性。这些改变简化了Vuex在Vue3中的集成和使用。

vuex中…mapMutations的使用

首先在vue2中mutations的使用方法是:

import Vuex from 'vuex'
const store = new Vuex.Store({
  state: {
    counter: 1000
  },
  mutations: {
    // 方法
    increment() {
      this.state.counter++
    },
    decrement() {
      this.state.counter--
    }
  }
})

然后在组件里写方法提交

methods: {
        addition() {
          this.$store.commit('increment')
        },
        subtraction() {
          this.$store.commit('decrement')
        }
      },

最后就可以在组件里使用:

<button @click="addition">+</button>
<button @click="subtraction">-</button>

然而vue3中的mapMutations简化了这样的写法

mutations: {
    // 方法
    increment() {
      this.state.counter++
    },
    decrement() {
      this.state.counter--
    }
  }

在组件中

import {mapMutations} from 'vuex'
methods: {
	...mapMutations(['increment','decrement'])
}

然后就可以直接在组件里使用:

<button @click="increment">+</button>
<button @click="decrement">-</button>

同理,对于…mapState

vue2中的使用方法是:

const store = new Vuex.Store({
	  state: {
	    counter: 1000
	  }
  }

然后在组件中:

<h2>{{$store.state.counter}}</h2>

vue3中的…mapState:

import {mapState} from 'vuex'
computed:{
    ...mapState(['counter'])
  }

就可以直接在组件里使用:

<h2>{{counter}}</h2>

当然还有很多别的写法…只写点最常用的吧

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值