我一直在学习角2几个星期。我有一点困惑。请比较的数据是如何存储/这里分享:Angular 2服务:在哪里保存数据
这里:
第一个链接显示它是如何在亚当·弗里曼的书叫“临角”来完成。我们可以看到有一个名为ProductRepository的服务,这就是所有产品都存储的地方。这个服务有一个构造函数,它从另一个服务初始化它的数据,名为StaticDataSource(稍后在本书中更改为从其余api获取数据)。所以总结一下:我们有一个组件,它被注入了一个名为ProductRepository的服务。然后它使用该服务中的getProducts()方法来接收所有产品(实际上这些产品只存储在该服务的数组中)。
现在让我们看一下第二个环节:
在这里,我们有一个CommentsService。这次数据不存储在这个服务中。我们只需要调用getComments()方法,然后再执行api服务中的另一种方法。 所以总结一下:我们有一个组件(ArticleComponent),它被注入了CommentsService。然后它调用该服务的getComments(),实际上每次调用时都会向服务器发送一个http.get请求。
现在我的问题是关于这些方法和后果之间的差异。根据我的理解,在第一种情况下,所有数据都从服务器获取一次(应用程序加载时),然后将其全部存储在名为SomethingRepository(ProductRepository等)的服务中。 然而,在第二个链接中,我们每次使用服务(在任何组件中),都会直接从服务器接收数据。
关于它的最佳实践是什么?我只是担心,如果我们使用本书中介绍的方法,那么我们不会总是获得“最新”的可能数据,因为如果另一个客户在此期间发生了某些变化,那么我们仍然会处理在我们的应用正在加载。另一方面,第二种方法可能会影响我们在组件之间共享数据的可能性。
我对此非常困惑,我不确定是否应该将整个模型保存在我的应用程序中,并且有某种存储库,或者第二种方法更好。感谢您的任何帮助。