gpt4 book ai didi

angular - Angular2 的服务应该是无状态的吗?

转载 作者:太空狗 更新时间:2023-10-29 17:18:56 24 4
gpt4 key购买 nike

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

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

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

最佳答案

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

因此对于您的问题:服务不应该是无状态的。他们通常是,但这不是必需的。

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

I would have to care where the service has been provided to know how long the state lasts.

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

关于angular - Angular2 的服务应该是无状态的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42378410/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com