Vue学习笔记-Vuex四个map方法的使用

在组件中导入方法

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

mapState方法的使用

注意:这里的…是ES6语法,表示将该的对象所有属性展开,放入其所在上级对象中

......
computed:{
	//借助mapState生成计算属性,从Vuex中的state对象中读取数据(对象写法)
	...mapState({sum:'sum',school:'school',subject:'subject'})
	//借助mapState生成计算属性,从Vuex中的state对象中读取数据(数组写法)
    ...mapState(['sum','school','subject']),
}

配置完毕之后,当组件访问state中的数据,可以由原来的$store.state.sum等价为sum,其他数据以此类推

mapGetters方法的使用

......
computed:{
	//借助mapGetters生成计算属性,从Vuex中的getters对象中读取数据(对象写法)
    ...mapGetters({
      bigSum:'bigSum',
    }),
    //借助mapGetters生成计算属性,从Vuex中的getters对象中读取数据(数组写法)
    ...mapGetters(['bigSum']),
}

配置完毕后,当组件访问getters中的数据,可以由$store.getters.bigSum替换为bigSum

mapActions方法的使用

帮助我们生成与actions对话的方法,即包含$store.dispatch(xxx)的函数
注意:需要传递参数时,需要在组件进行方法调用时传参,例如按钮点击事件:

methods:{
	//用于取代 $store.dispatch('incrementOdd'),对象写法
	...mapActions({
		incrementOdd : 'incrementOdd',
		incrementWait : 'incrementWait'
	}),
	//数组写法
	...mapActions(['incrementOdd','incrementWait'])
}

mapMutations方法的使用

帮助我们生成与mutations对话的方法,即包含$store.commit(xxx)的函数
注意:需要传递参数时,需要在组件进行方法调用时传参,例如按钮点击事件:

methods:{
	...mapMutations({
		increment:'ADD',
		decrement:'DECREMENT'
	})
}

你可能感兴趣的:(vue.js,学习,笔记)