当你有一个非常大的状态对象的大应用程序时,你经常将它分成
modules.
这基本上意味着你将状态分解成更小的部分.其中一个警告是,您不能对模块使用相同的方法名称,因为它已集成到同一状态,因此例如:
moduleA {
actions:{
save(){}
}
}
moduleB {
actions:{
//this will throw an error that you have the same action defined twice
save(){}
}
}
因此,为了启用此功能,您可以选择将模块定义为命名空间,然后您可以在不同的模块中使用相同的方法:
moduleA {
actions:{
save(){}
},
namespaced: true
}
moduleB {
actions:{
save(){}
},
namespaced: true
}
然后你这样称呼它:
this.$store.dispatch('moduleA/save')
this.$store.dispatch('moduleB/save')
请注意,如果你使用mapGetter或mapActions,它可能会使事情变得复杂,因为getter现在是[‘moduleA / client’]的形式
所以只有在你真的需要时才使用它.