vue的vuex解析(三)之Mutations、Actions、Getters传参

Mutations传参数

vuex文件夹里的mutations.js中:

const mutations = {
	increase(state, num) { // num为参数
		state.count = state.count + num;
	}
}

组件中:

methods: {
	...mapMutations({
		Increase: 'increase',
	}),
	// increase触发事件
	increaseClick() {
		// 非mapMutations
		this.$store.commit('increase', 100);
		// 若是mapMutations,则:
		this.Increase(100);
	},
}

Actions传参数

vuex中的actions.js文件:

const actions = {
	icrease_actions(context, num) { // num为参数
		context.commit('increase', num);
	}
}

组件中:

method: {
	...mapActions({
		Increase_Actions: 'increase_actions',
	}),
	// increase_actions的触发函数
	increaseActionsClick() {
		// 非mapActions
		this.$store.dispatch('increase_actions', 100);
		// 若是mapActions,则
		this.Increase_Actions(100);
	}
}

Getters传参数

vuex文件夹的getters.js中:

const getters = {
	getToDoList: (state, getters) => (flag=true) => { // flag为参数,默认值为true
		return state.list.filter((item) => item.flag == flag); // item.flag为list里面的属性值,意为筛选item.flag和参数flag数值相等的数据
	} 
}

为助于理解,现给出state的代码如下:

const state = {
	list: [
		{
			id: 1,
			flag: true,
			name: ‘我是1,
		},
		{
			id: 2,
			flag: false,
			name: ‘我是2,
		},
		{
			id: 3,
			flag: true,
			name: ‘我是3,
		}
	],
};

组件中:

methods: {
	// getters的触发函数
	gettersClick() {
		this.$store.getters.getToDoList(true);// 筛选出state的list中flag为true的数据
		// 若使用mapGetters,则:
		this.getGettersToDoList(true);// 筛选出state的list中flag为true的数据
	},
},

若使用mapGetters,则:

computed: {
	...mapGetters({
		getGettersToDoList: 'getToDoList',
	}),
},
  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值