我已经看到了将redux存储拆分成切片的不同策略(每个切片都有状态、缩减、操作和actionCreators),我想知道每种策略的优缺点是什么。
基于后端资源拆分
在restful世界中,后端模型被命名为资源。由于前端让用户与这些类的对象进行交互,因此我们可能会有特定于每个资源的redux切片。
示例:资源Post的切片,其状态由posts、selectedPost等键组成。
按前端子模块拆分
如果您将子模块视为应用程序的独立分区,则每个子模块在rootStore中都需要有自己的名称空间。
示例:配置文件、设置和仪表板子模块的切片
按应用程序页面(或路由)拆分
每个带有路由的页面都有自己的切片。
示例:用户-设置页面、组织-设置页面、通知-设置页面、主页-设置页面
另外,我想知道是否还有其他我不知道的策略。
发布于 2019-04-04 23:41:21
我按资源划分数据,毕竟我们在这里讨论的是数据,我们只需要知道数据作用域。它不需要知道哪个页面正在使用它,因为这些数据可以在一对多的关系中使用。
这样,当你需要数据时,你只需要考虑你需要的数据,没有其他的,所以你给出的第一个选择是最好的选择,其他的选择都是很麻烦的。Redux允许您访问全局作用域状态。如果你通过路由或模块来管理它,那么你现在需要记住哪个路由或模块正在使用什么数据来检索它,这会给你的应用程序增加一个额外的复杂性层。
发布于 2019-04-04 22:34:01
除了您在这里指出的策略之外,我不知道其他策略。然而,我遵循的策略是您在下面提到的前两个策略的混合。将reducers划分为BE资源和FE子模块的原因非常简单,因为它们都形成了功能的状态。
如果我理解正确的话,那么您不应该完全依赖BE资源来确定管理特性状态的策略,因为您需要内部灵活性来控制组件状态(标志、计数器、表单值等)。因此,策略2在这里派上用场。同时,您肯定会使用流向同一组件的BE信息。
https://stackoverflow.com/questions/55409189
复制相似问题