Angular2的服务是否应该是无状态的?

马丁线

我来自Java世界,那里的服务通常是无状态的。Angular2中的服务是否也应该是无状态的?还是可以简单地存储状态,因为我们不必像Java示例中那样关心并发线程访问?

AuthService类的https://angular.io/docs/ts/latest/guide/router.html#!#teach-authguard-to-authenticate处存储状态。

只是为了简化示例还是一种常见做法?我知道服务是实例化的,并且可以在声明它们的范围内使用,但这意味着我将不得不关心在哪里提供了服务才能知道状态持续多长时间。

贡特·佐赫鲍尔(GünterZöchbauer)

通常,让组件处于无状态并将状态存储在服务中,尤其是在路由器添加的组件中,是一个好主意,这样,导航离开并稍后返回到路由不会丢失数据。

因此,向您提出一个问题:服务不应该是无状态的。它们经常是,但是不是必需的。

您可以改为使用NGRX存储来存储状态,但这也是一项服务。

我将不得不关心在哪里提供了服务,以了解状态持续多长时间。

是的,这就是您要做的。通常很容易。如果您希望服务及其状态在整个应用程序生命周期中都可用,请在其中提供它@NgModule()(需要对延迟加载的模块进行一些特殊处理),否则,请在组件处提供它,并且服务的生命周期将以组件实例被销毁。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

屏幕应该是无状态还是有状态?

枚举对象应该是无状态的吗?

如果资源服务器应该是无状态的,则如何使用websocket发送消息以使其排队

如果REST应用程序应该是无状态的,那么如何管理会话?

服务应该是自主的。

RSpec 2“应该是”

这个无状态的迭代器应该是没有条件语句的无限循环,但它不会

DI 容器是否应该是全局的

用户ID是否应该是秘密

Apollo Link 状态中的 __typename 应该是什么?

ggplot2 函数 - 检查用户输入变量是否应该是映射的美学

@transactional服务在春季应该是单例还是原型?

空案例类是否应该是单个实例?

“优化出”值是否应该是随机的?

数组中的只读结构是否应该是不变的?

IObservable <IEnumerable <T >>是否真的应该是IObservable <T>?

双引号应该是 Angular 中的单引号错误

它应该是模块还是组件 Angular?

Maven M2_Home应该是什么?

接收参数 #2 应该是 laravel 中的数组

ResultSet应该是公共的

JWT是否应该是一个单独的身份验证微服务,而不应该放在后端业务逻辑中?

Angular 2 是无状态的还是有状态的?

如果资源不可用于请求的操作,HTTP状态代码应该是什么?

凭证过期错误/异常的HTTP状态代码应该是什么?

Reacts / Flux'存储应该是GUI整个状态的快照吗?

降级的健康检查的HTTP状态代码应该是什么?

对于新定义的效用函数是否应该是局部的,是否存在共识?

为什么HTTP PUT方法应该是幂等,而不是POST实施RESTful服务?