当项目体积不断扩大时使用Vuex的地方越来越多,store文件越来越难以维护,我们需要对Vuex来解耦,
所以可以使用vuex中modules去解耦,降低耦合度
但是会存在一个问题,加了命名空间的不同模块之间如何调用会成为一个问题。
当前项目的modules中

当前modules中存在的模块
假设当前在user.js模块里面调用sign里面的方法
如下图
如图
图中白色的框是当前模块的方法名调用,
红色的框是sign模块下面的方法名, 为什么这样写呢?如下

vuex官网

vuex官网中找到的答案, 在这个模块中, dispatch和commit被局部化了,它们可以接受root属性以访问跟dispath或者commit
所以当调用其他模块的方法名时, 如调用 sign/isSignPro
dispatch(‘sign/isSignPro’, 需要传递的参数, { root: true }).then(() => {
// dosomething
})

Logo

前往低代码交流专区

更多推荐