Angular4 + Redux:谁应该派出行动?

时间:2017-07-14 13:54:31

标签: javascript angular redux ngrx

在使用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的响应并将操作分派给商店会更好吗?我应该分开吗?优缺点都有什么?我找不到一篇关于此的好文章。

1 个答案:

答案 0 :(得分:2)

我个人希望将任何逻辑与数据/休息服务分开。

基本上你有很多方法可以解决这个问题 - 在一个大型应用程序中,我甚至不能直接从组件内部调用服务,而只能通过@Effect通过调度操作来调用服务。

但是没有"一个真实"方式,这一切都取决于您定义的架构/风格 - 只需确保您保持一致,不要为每个组件/服务引入新的方式。