Reactjs 在React+;中处理大型存储中的数据一致性;雷迪克斯温泉酒店

Reactjs 在React+;中处理大型存储中的数据一致性;雷迪克斯温泉酒店,reactjs,redux,normalization,react-redux,Reactjs,Redux,Normalization,React Redux,因此,我们计划使用带有React+Redux前端服务器的PHP后端。我们正在开发一个非常大的应用程序,整个应用程序中有很多表。因为它将是一个单页应用程序,所以所有数据都包含在on store对象中 那么,让我们看看我的心态是否正确。当我登录到应用程序时,我的状态几乎为空。当我浏览网页时,我的状态将开始填满。示例:我访问应用程序的“照片”,然后我将从我的数据库加载一些照片并将其放入我的商店: state{ ... photos: [1: {...}, 3: {...}, 17:{...}] .

因此,我们计划使用带有React+Redux前端服务器的PHP后端。我们正在开发一个非常大的应用程序,整个应用程序中有很多表。因为它将是一个单页应用程序,所以所有数据都包含在on store对象中

那么,让我们看看我的心态是否正确。当我登录到应用程序时,我的状态几乎为空。当我浏览网页时,我的状态将开始填满。示例:我访问应用程序的“照片”,然后我将从我的数据库加载一些照片并将其放入我的商店:

state{ 
...
photos: [1: {...}, 3: {...}, 17:{...}] 
... 
}
以后,如果我需要id=17的照片,我不需要再次申请,我可以从我的商店使用,对吗?或者,我可以先从存储区获取它,然后请求它异步以检查是否有更改

随着我访问越来越多的页面,我将拥有一个巨大的存储对象,其中包含来自不同表的大量元素,例如照片、视频、用户配置、朋友等。我应该如何处理数据一致性?如果我需要一个10分钟前已经获取的对象,我是否应该再次请求它?拥有这么大的商店物品是否“健康”

我计划使用normalizer&reselect在react-redux中操纵我的日期

有什么想法吗? 我想听听你如何看待这种情况

提前谢谢


Fábio

是的,标准建议使用规范化的Redux存储。有关更多信息,请参阅和我的React/Redux链接列表的一部分

至于缓存数据,从概念上讲,这与任何其他客户端设置都没有什么不同。无论您使用的是Redux、Angular、Ember、Backbone还是其他工具,存储大量数据都将占用相似的内存量。由您决定要缓存多少数据,以及何时以及如何清除缓存的数据


最后,为了在Redux存储中操作关系/规范化数据,我推荐一个名为。一般来说,您绝对应该使用重新选择,normalizer有助于规范化您收到的数据,但Redux-ORM提供了一个有用的抽象层,用于在存储中查询和更新规范化数据。我已经写了几篇博客文章描述了它的用途:和。

哇!谢谢你,马克!谢谢你的材料,这正是我现在需要的。同时也感谢使用Radux ORM的建议,它是否完全取代了normalizer和reselect?我对其中任何一个都不感兴趣,我一定会看一看。它们之间有些重叠。Redux ORM可以使用重新选择来生成一些选择器,我在一些重新选择选择器中使用Redux ORM。事实上,我使用Redux ORM解析和规范化传入数据,这确实取代了您使用Normalizer的功能,尽管其中涉及到一些警告(根据我的第二篇博文)。假设这回答了问题,介意接受答案吗?:)