在使用Redux(使用ngrx-store)的Angular 4应用程序中,我有以下内容:
调用服务的智能组件
this.contentService.update(this.content).subscribe( data => {
//output some success message
});
调用API然后调度操作的服务
update(content: Content) {
return this.http.put(`http://someendpoint/contents.json`, { content })
.map( (updated_content: Content) => {
this.store.dispatch( { type: 'SOME_KEY', payload: updated_content } );
return updated_content;
});
}
这种方法工作得很好,没问题。但我不知道这是否是正确的方法:让组件处理API的响应并将操作分派给商店会更好吗?我应该分开吗?优缺点都有什么?我找不到一篇关于此的好文章。
答案 0 :(得分:2)
我个人希望将任何逻辑与数据/休息服务分开。
基本上你有很多方法可以解决这个问题 - 在一个大型应用程序中,我甚至不能直接从组件内部调用服务,而只能通过@Effect
通过调度操作来调用服务。
但是没有"一个真实"方式,这一切都取决于您定义的架构/风格 - 只需确保您保持一致,不要为每个组件/服务引入新的方式。