我是Redux的新手,从ngrx开始。我无法理解这家商店的概念及其目的。
说我有书店应用程序。我可以向用户买卖书籍。
我使用ngrx来获取通过以下操作获得的图书清单:LOAD_BOOKS
,然后使用效果从http加载图书清单并将其保存回商店。
当我进入/books
时,在加载组件之前,我已经做好了防护。在这个守护程序中,我检查书单是否在商店中(如果没有,我发送LOAD_BOOKS
操作),并且在加载书单后,我呈现了显示所有书本(来自商店)的组件
下一次当我再次输入/books
时,该列表在商店中。
因此我了解到,因为我在商店中有此列表,所以我不需要调用http即可带此列表。
但是,如果有人买了其中一本书会怎样?我的商店可用书籍清单没有更新。
我从不更新,因为它已经在商店中。
所以我的问题是我应该如何处理这种情况?存放什么而不存放什么?如果不存储数据,此存储的目的是什么。问题是当服务器内部的数据更改时该怎么办?我正在处理“离线”数据
答案 0 :(得分:1)
因此,在第一种情况下,这是常见的问题,不仅涉及到存储,如果服务器数据发生更改,客户端不会由于使用http而自动更新,因为您应该使用广播,例如websocket。
存储的目的是更改应用程序体系结构,因此如果与父级->子级无关的多个页面组件需要相同的数据,则将其与存储连接,并且每次存储数据更改时,您都会更新组件数据以及。因此,如果您想像不到,如果页面上有许多具有不同关系的组件,则无法使用简单的服务来复制同一事物,那么就很难将它们捆绑在一起,并且当其中一种数据进行更新时,其余部分可能会出现错误。>
Store并没有为您提供使服务器脱机工作的神奇方法,当无法连接到服务器时,您只是提醒用户他无法像使用HTTP服务那样获取数据或执行操作。 / p>
有关更多信息,我建议您阅读有关通量架构的内容,因为redux和ngrx都基于它。我认为这将清楚说明存储优惠的好处以及应在哪种类型的应用程序中实现。