javascript - Angular4 + Redux : who should dispatch action?

标签 javascript angular redux ngrx

<分区>

在使用 Redux(带有 ngrx-store)的 Angular 4 应用程序中,我有以下内容:

调用服务的智能组件

this.contentService.update(this.content).subscribe( data => {
  //output some success message
});

调用 API 然后分派(dispatch)操作的服务

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 的响应并将操作分派(dispatch)到商店会更好吗?我应该把它分开吗?优缺点都有什么?我找不到关于此的好文章。

最佳答案

就我个人而言,我想将任何逻辑与数据/休息服务分开。

基本上你有很多很多方法来处理这个——在一个大的应用程序中,我什至不会直接从组件内部调用服务,而只能通过分派(dispatch)操作通过 @Effect 调用服务。

但是没有“唯一正确”的方式,这完全取决于您定义的架构/风格 - 只要确保保持一致,不要为每个组件引入新的方式/服务。

关于javascript - Angular4 + Redux : who should dispatch action?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45104782/

相关文章:

node.js - 如何更改 Angular 快速入门中的默认精简服务器端口?

javascript - 如何自定义Intl.DateTimeFormat日期?

javascript - Redux thunk : how to await completion of an async action

javascript - 如何在react-native中保持用户登录(又名,状态持久性)

javascript - Mocha 客户端可以运行为 Cucumber/Gherkin 编写的测试吗?

javascript - 在 JavaScript 中使用 Chrome 中的系统打印对话框

javascript - 模块化和多 View 的主干路由

angular - “Request-Id”和 'Request-Context' 未添加

reactjs - 为什么 react-router 在调度时自动返回到以前的路由

javascript - ASP.NET Core 2.0 Razor + Angular 4 混合