Vuex简单使用学习四(modules)

一个项目足够大时,store(仓库)里面的state,getters,mutations,actions就会有很多,如果都放在一个store里面就感觉很混乱,使用modules可以把他们放到不同的文件中,每个modules都有自己的state,getters,mutations,actions

例如

				const moduleA={
                                        namespaced: true,
					state:{....},
					mutations:{...},
					actions:{...},
					getters:{...}
				}
				const moduleB={
                                        namespaced: true,
					state:{....},
					mutations:{...},
					actions:{...},
					getters:{...}
				}
				const store= new Vuex.Store({
					modules:{
						a:moduleA,
						b:moduleB
					}
				})
				store.state.a//moduleA的状态
				store.state.b//moduleB的状态

为了解决不同模块命名冲突的问题,将不同模块的namespaced:true

假如调用moduleB中的getters方法

const moduleB = {

	namespaced: true,
	state: {
		count: 0
	},
	getters: {
		sumCount(state, getters, rootState) {
			return state.count + rootState.count
		}

	}
}

this.$store.getters['b/sumCount']

module的mutation和getter接收的第一个参数是哦state当前模块的状态,第二个参数getter下的方法,第三个参数是其他模块中的状态(state)

如果是把store每个参拆分成一个个js如下

store
│  index.js
│  
├─moduleA
│      actions.js
│      getters.js
│      index.js
│      mutations.js
│      state.js
│      
└─moduleB
        actions.js
        getters.js
        index.js
        mutations.js
        state.js

 

import Vue from 'vue';
import Vuex from 'vuex';
import moduleA'./moduleA';
import moduleB './moduleB';

Vue.use(Vuex);

export default new Vuex.Store({
  modules: {
    moduleA,
    moduleB
  },
});

 

import state from './state';
import mutations from './mutations';
import actions from './actions';
import getters from './getters';

export default {
        namespaced: true,  //多出的一行
        state,
        mutations,
        actions,
        getters
};        

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值