每个组件提供服务的好坏angular 4?

Good or bad to provide services per component angular 4?

实际上,我有两个关于 angular 4 最佳实践的问题。

  1. 我有一个名为 RemoteService 的服务,它负责 XHR 调用。我想在 RemoteService 中捕获正在使用该服务的组件实例。所以我想,最好按组件级别提供该服务。因为我不希望服务的每个方法都通过参数获取组件实例。但是,按组件提供服务是好是坏?顺便说一句:RemoteService将在数百个组件中使用。
  2. 我正在尝试关注 angular 的 style guide。我应该把 RemoteService 放在哪里?共享功能模块还是核心功能模块?它的目的看起来像 ExceptionServiceLoggerService。但这不是我上面解释的单例服务。这可能取决于问题 1 的答案。

所以回答你的两个问题 - RemoteService 绝对是个好主意。我一般叫我的ApiService.

出于以下几个原因,这是一个好主意 -

  • 来自一个文件的所有 http 调用允许一个端点用于您的外部请求。它比让调用来自单独的组件级服务更有条理
  • 您可以更好地控制通话。意思是,如果您需要在组件的调用和实际的 http 调用(示例 - 身份验证检查)之间放置一些逻辑 - 您不想 运行 在您的应用程序周围到处更改它 - 相反,您有一个包装 http 请求并提供额外逻辑的本地函数。

关于放置位置 - John Papa 的风格指南建议将此文件放置在 shared 文件夹中:https://johnpapa.net/angular-2-styles/