vue —— vuex namespaced模块化编码

当Vue应用的state、mutations、actions和getters变得复杂时,可以使用Vuex的namespaced模块化来组织代码。通过设置namespaced: true,可以按需求将代码分组,并使用mapXXX函数或直接引用分组内的方法和属性。在引用时需加上分组名,例如:mapState('分组名', ['属性1', '属性2', '属性3']),或使用this.$store.getters['分组名/方法名']等语法来访问。" 106118040,8682509,新冠数据分析:大数据在医院决策中的关键角色,"['大数据', '数据科学', '疫情分析', '医疗', '模型预测']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在需求过多的时候就会发生在actions mutations state getters 编写代码过多的情况会很混乱,可以把每个需求的代码进行分组 查看时便可根据不同的需求查看。不过在每个需求里还是要配置actions mutations state getters
使用方法

  • 在分组时 添加 namespaced: true 开启
  • 调用时
  • mapState(‘分组名’, [‘属性1’, ‘属性2’, ‘属性3’,……])
  • mapGetters(‘分组名’, [‘属性1’, ‘属性2’, ‘属性3’,……])
  • mapActions(‘分组名’, [‘方法1’, ‘方法2’, ‘方法3’,……])
  • mapMutations(‘分组名’, [‘方法1’, ‘方法2’, ‘方法3’,……])
注意export时使用modules

例如

// 求和相关的配置
const countOptions = {
	namespaced: true,
	actions: {
		jia: function(context,value){
			console.log('actions中的jia',context,value)
			context.commit('JIA',value)
		}
	},
	mutations: {
		JIA(state,value){
			console.log('mutations中的JIA',state,value)
			state.sum += value
		},
	},
	state: {
		sum: 0,
		school: '学校',
		subject: '学科',
	},
	getters: {
		bigSum(state){
			return state.sum*10
		}
	}
}
// 创建 暴露 store
export default new Vuex.Store({
	modules: {
		countAbout: countOptions,
	}
})
methods: {
	...mapActions('countAbout',['jia']),
},
computed:{
	...mapState('countAbout',['sum','school','subject']),
	...mapGetters('countAbout',['bigSum']),
}
<h1>{{sum}}</h1>
<h1>{{school}}</h1>
<h1>{{subject}}</h1>
<h3>当前求和放大后为:{{bigSum}}</h3>
<select v-model.number="n">
	<option value='1'>1</option>
	<option value='2'>2</option>
	<option value='3'>3</option>
</select>
<button @click='jia(n)'>+</button>

不借助map……使用

  • this.$store.getters[‘分组名/方法名’]——获取getters的数据
  • this.$store.state.分组名.属性名——获取指定分组下的属性
  • this.$store.commit(‘分组名/方法名’, ‘参数’)——使用commit下的方法
  • this.$store.dispatch(‘分组名/方法名’, ‘参数’)——使用dispatch下的方法
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值