Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 什么';这是在Vuex存储中实现常见任务的最佳方法_Javascript_Api_Vue.js_Vuex - Fatal编程技术网

Javascript 什么';这是在Vuex存储中实现常见任务的最佳方法

Javascript 什么';这是在Vuex存储中实现常见任务的最佳方法,javascript,api,vue.js,vuex,Javascript,Api,Vue.js,Vuex,当前,当从Vuex store操作对象中进行API调用时,我正在尝试实现一项常见任务,我的操作当前如下所示: /** *检查帐户激活令牌 * */ [检查激活令牌]({commit},有效负载){ Api.checkActivationToken(payload.token)。然后((响应)=>{ if(response.fails()){ 返回提交('NEW_MESSAGE',{MESSAGE:responses.activation[response.code]}) } 返回提交('SET

当前,当从Vuex store操作对象中进行API调用时,我正在尝试实现一项常见任务,我的操作当前如下所示:

/**
*检查帐户激活令牌
*
*/
[检查激活令牌]({commit},有效负载){
Api.checkActivationToken(payload.token)。然后((响应)=>{
if(response.fails()){
返回提交('NEW_MESSAGE',{MESSAGE:responses.activation[response.code]})
}
返回提交('SET_TOKEN')
})

}
在阅读了Evan You关于解耦的GitHub线程和回复后,我实际上对这个“问题”采取了不同的态度

最终我决定,通过强制API层直接了解存储,我将这两件事紧密地结合在一起。因此,我现在处理我在进行存储提交的每个组件中寻找的显示和隐藏功能,如下所示:

/**
*检查重置令牌的有效性
*
*/
支票代币(){
如果(!this.token){
返回此。$store.commit('NEW_MESSAGE',{MESSAGE:'未找到激活令牌。无法继续'})
}
this.showLoader()
this.$store.dispatch('CHECK_ACTIVATION_TOKEN',{TOKEN:this.TOKEN})。然后(this.hideLoader)

},
您可以创建一个“中心”操作,在该操作中,
提交
加载/加载突变。此操作可以接收另一个操作名称(字符串)作为参数。在“加载”提交之间,您可以
dispatch
将操作作为参数传递。但对于异步任务,关闭提交将无法按预期工作。我想如果您的操作返回一个承诺,那么您可以在回调中调用closing commit。是的,我相信这就是我目前拥有的,加载程序的模块在调用时接受字符串SHOW/HIDE,但每次我仍然需要“手动”进行这些调用。我需要通过每次显式地将API传递给存储(这并不能解决问题),或者通过将SHOW/HIDE绑定到事件的其他钩子,为API提供对存储的访问权。我还没有找到一个有效的方法来做这两件事。对于你来说,这似乎是一个更好的方法,谢谢分享。但我认为这取决于一个项目。例如,我制作了一个应用程序,其中几个组件注入了一个“加载状态”getter,以决定此时要显示哪些模板/图标。“加载状态”由执行昂贵API调用的操作设置。在这种情况下,最好将“加载”提交放在一个动作中,因为它们依赖于这个动作,而且比从许多组件中提取相同的变异代码要少。是的,睡过觉后,我又回到了你建议的想法。将所有与您正在做的事情相关的提交封装在操作中似乎比在整个组件中重复(分散)它们更合适。我想我会沿着这条路走下去,看看结果如何。