Vue模块化开发

Vue模块化开发

1、终端导入vuex

npm i vuex

2、创建inedx.js文件放入store目录
index.js:

import Vue from 'vue'
import Vuex from 'vuex'
import counterOption from './counterOption.js'
Vue.use(Vuex);




export default new Vuex.Store(
{
	modules:{
		countHzx:counterOption
	}
	}
)
	

modules中以key-value的方式放入配置项

3、编写配置项
counterOption.js:

export default{
	namespaced:true,
	actions:{
		add(context,value){
		
			context.commit('add',value);
			
		},
		del(context,value){
			context.commit('del',value);
		},
		oddAdd(context,value){
			context.commit('oddAdd',value);
				
		}
	},
	mutations:{
		add(state,value){
			state.sum += value
		},
		del(state,value){
			state.sum -= value
		},
		oddAdd(state,value){
			if(state.sum % 2 != 0)
				state.sum += value
		}
	},
	getters:{
		bigSum(state){
			return state.sum*10;
		}
	},
	state:{
		sum:0
	}
	
}

除了最基本的配置项actions、mutations、getters、state外,新增配置项namespaced,是为了解决不同模块重名的冲突。

4、counter.vue测试

<template>

	<div id="counter">
		<select v-model.number="addition">
			<option value="1">1</option>
			<option value="2">2</option>
			<option value="3">3</option>
		</select>
		<button @click="add(addition)">+</button>
		<button @click="del(addition)">-</button>
		<button @click="oddAdd(addition)">奇数再加</button>
		<h1>结果:{{sum}}</h1>
		<h1>放大十倍:{{bigSum}}</h1>
	</div>
</template>
<script>
//引入对应的配置项
	import {mapState,mapMutations,mapActions,mapGetters} from 'vuex'
	
	export default{
		name:'counter',
		data(){
			return{
				addition:1,
				
			}
		},
		computed:{
		//使用...mapXXX(配置项名,[参数])
		//参数为一个数组或单个
			...mapState('countHzx',['sum']),
			...mapGetters('countHzx',['bigSum'])
		},
		methods:{
			...mapMutations('countHzx',['add','del','oddAdd']),
			...mapActions('countHzx',['add','del','oddAdd'])
			
			
		},
		mounted(){
			console.log(this);
		}
		
	}
</script>

<style scoped>
	button{
		margin-left: 10px;
	}
</style>

重要:
mapState和mapGetters放在计算属性中
mapMutations和mapActions放在方法中

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue中,模块化开发是将一个大型应用程序拆成小的、可重用的模块,然后将这些模块组合在一起构建整个应用程序。模块化可以提高开发效率,使代码更易于理解和维护。例如,可以将一个功能拆成多个组件,每个组件专注于实现独立的功能。这样,开发人员可以集中精力处理每个组件的逻辑,而不用同时关注整个应用程序的细节。 在Vue中,可以使用组件来创建模块。组件是一个功能代码集,可以方便地反复使用。通过使用组件,可以将页面拆成多个小模块,每个小模块负责一个特定的功能。这样,我们可以更加灵活地组织代码,并且可以在不同的地方重复使用同一个功能代码集。 Vue开发模式是MVVM模式,其中VM(ViewModel)的任务是完全封装DOM操作,开发人员不需要再关心Model和View之间的互相影响。当Model发生改变时,View会自动更新;当用户修改View时,Model中的数据也会相应变化。这样,开发人员可以将注意力集中在如何操作Model上,而不需要过多地关注DOM操作。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Vue实战中的模块化开发](https://blog.csdn.net/qq_40792558/article/details/110380334)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [挑战百日学习计划(小程序开发)-第9天(Vue组件component)](https://download.csdn.net/download/weixin_38691739/14043796)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [Vue模块化开发](https://blog.csdn.net/qq_43460335/article/details/123964102)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值