getters的使用
- 概念:当state中的数据需要经过加工后再使用时,可以使用getters加工。
- 在
store.js中追加getters配置...... const getters = { bigSum(state){ return state.sum * 10 } } //创建并暴露store export default new Vuex.Store({ ...... getters }) - 组件中读取数据
$store.getters.bigSum
四个map方法的使用(import {mapState,mapGetters,mapMutations,mapActions} from 'vuex')
- mapState方法:用于帮助我们映射
state中的数据为计算属性computed: { //借助mapState生成计算属性,sum、school、subject(对象写法) ...mapState({sum:'sum',school:'school',subject:'subject'}),//当对象中key值与value值不同时推荐使用,即mySum='sum'这样的 //借助mapState生成计算属性,sum、school、subject(数组写法) ...mapState(['sum','school','subject']),//当对象中key值与value值相同时推荐使用 } - mapGetters方法:用于帮助我们映射
getters中的数据为计算属性computed: { //借助mapGetters生成计算属性,bigSum(对象写法) ...mapGetters({bigSum:'bigSum'}),//当对象中key值与value值不同时推荐使用,即mybigSum='bigSum'这样的 //借助mapGetters生成计算属性,bigSum(数组写法) ...mapGetters(['bigSum']),//当对象中key值与value值相同时推荐使用 } - mapActions方法:用于帮助我们生成与
actions对话的方法,即:包含$store.dispatch(xxx)的函数methods: { //靠mapActions生成,incrementOdd、incrementWait(对象形式) ...mapActions({incrementOdd:'jiaOdd',incrementWait:'jiaWait'}), //靠mapActions生成,incrementOdd、incrementWait(数组形式) ...mapActions(['jiaOdd','jiaWait']), } - mapMutations方法:用于帮助我们生成与
mutations对话的方法,即:包含$store.commit(xxx)的函数methods: { //靠mapMutations生成,incrementOdd、incrementWait(对象形式) ...mapMutations({increment:'JIA',decrement:'JIAN'}), //靠mapMutations生成,JIA、JIAN(数组形式) ...mapMutations(['JIA','JIAN']), }
备注:mapActions和mapMutations使用时,若需要传递参数,需要在模板中绑定事件时传递好参数,否则参数是事件对象。