Angular 如何使用离线数据处理ngrx/存储?

Angular 如何使用离线数据处理ngrx/存储?,angular,redux,ngrx,ngrx-store,Angular,Redux,Ngrx,Ngrx Store,我是Redux新手,从ngrx开始。我无法理解商店的概念和他的目的 假设我有书店申请。我可以向用户购买或出售书籍 我使用ngrx获取我的图书列表,使用以下操作:LOAD\u books,然后使用effects从http加载图书列表并将其保存回存储 当我进入/books时,在加载组件之前,我有一个防护装置。在此guard中,我检查图书列表是否在存储中(如果不在,我发送LOAD\u BOOKS操作),加载列表后,我呈现显示所有图书的组件(来自存储) 下次我再次进入/books时,列表就在商店里 因此

我是Redux新手,从ngrx开始。我无法理解商店的概念和他的目的

假设我有书店申请。我可以向用户购买或出售书籍

我使用ngrx获取我的图书列表,使用以下操作:
LOAD\u books
,然后使用effects从http加载图书列表并将其保存回存储

当我进入
/books
时,在加载组件之前,我有一个防护装置。在此guard中,我检查图书列表是否在存储中(如果不在,我发送
LOAD\u BOOKS
操作),加载列表后,我呈现显示所有图书的组件(来自存储)

下次我再次进入
/books
时,列表就在商店里

因此,我理解,我不需要调用我的http来获取此列表,因为我在商店中有此列表

但是,如果有人买了其中一本书,会发生什么?我的书店可用图书列表未更新

我从来没有更新过,因为它已经在商店里了


所以我的问题是我应该如何处理这种情况?存储什么和不存储什么?如果不存储数据,此存储的目的是什么。问题是,当服务器内部的数据发生变化时,该怎么办?我正在处理“脱机”数据,所以在第一种情况下,这是一个常见的问题,而且不仅仅是指如果服务器数据发生更改,客户端不会因为使用http而自动更新,因为您应该使用广播,例如websocket

store的目的是更改应用程序架构,以便在多个与父级->子级不相关的页面组件需要相同的数据时,它具有单一的真实来源,您可以将它们与store连接,并且每次store数据更改时,您也可以更新组件数据。所以,若你们想象你们不能用简单的服务复制同样的东西,若你们在页面上有许多不同关系的组件,那个么很难把它们联系在一起,当数据更新到其中一个组件时,其他的组件可能会出现问题

应用商店并没有为您提供使服务器脱机工作的神奇方法,当无法连接到服务器时,您只需提醒用户,他无法获取数据或执行操作,就像您使用http服务时所做的那样

关于更多信息,我鼓励您阅读通量体系结构,因为redux和ngrx都是基于它的。我认为这将明确说明商店提供的好处以及应该在哪种类型的应用程序中实现它