我在我正在研究的项目中使用reactjs和助焊剂架构。我对如何将嵌套数据正确地拆分到存储中以及为什么应该将数据拆分到多个存储中感到困惑。
为了说明问题,我将使用以下示例:
想象一下您有项目的Todo应用程序。每个项目都有任务,每个任务都可以有注释。
该应用程序使用REST api检索数据,返回以下响应:
{
projects: [
{
id: 1,
name: "Action Required",
tasks: [
{
id: 1,
name: "Go grocery shopping",
notes: [
{
id: 1,
name: "Check shop 1"
},
{
id: 2,
name: "Also check shop 2"
}
]
}
]
},
]
}
虚拟应用程序的界面在左侧显示一个项目列表,当您选择一个项目时,该项目变为活动状态,其任务显示在右侧。单击任务时,您会在弹出窗口中看到其注释。
我要做的是使用1个单一商店,即“项目商店”。一个动作向服务器发出请求,获取数据并指示商店用新数据填充自身。商店在内部保存此实体树(“项目”->“任务”->“注释”)。
为了能够根据选择的项目显示和隐藏任务,我还将在存储区中保留一个变量“ activeProjectId”。基于此,视图可以获取活动项目,其任务并进行渲染。
问题解决了。
但是,在网上搜索了一下是否是一个好的解决方案之后,我看到很多人指出您应该为每个实体使用单独的商店。
这意味着:一个ProjectStore,TaskStore和NoteStore。为了能够管理关联,我可能还需要“
TasksByProjectStore”和“ NotesByTaskStore”。
有人可以解释为什么这会更好吗?我唯一看到的是管理存储和数据流的大量开销。
使用一个商店或不同商店各有利弊。可以这么说,有些通量实现特别有利于一家商店来统治所有商店,而其他一些实现还促进了多个商店。
一个商店还是多个商店满足您的需求,取决于a)您的应用程序做什么,以及b)您期望的未来发展或变化。简而言之:
在您的情况下:我敢打赌,一家商店会更好。您具有明显的父子关系,并立即从服务器获取所有项目数据。
答案更长一些:
一间商店 :
多家商店 :
问题内容: 我读到每个应用程序都在自己的JVM中运行。为什么会这样呢?他们为什么不让一个JVM运行2个或更多应用程序? 我说的是通过公共静态void main(String [])方法启动的应用程序…) 问题答案: (我假设您正在谈论通过方法启动的应用程序…) 理论上,您可以在JVM中运行多个应用程序。实际上,它们可以以各种方式相互干扰。例如: JVM具有一组System.in/out/err,一
我的问题可能看起来很傻。我是JPA的新手,试图理解它的基本概念。我发现有一种@multi-to-one实体关系可以在那里使用。我的问题是,为什么有人想在拥有“一对多”关系的同时使用它?我的意思是,拥有后一个就足够了解关系并发送查询了,对吗?如果没有,请解释。也许我对这两种关系的看法是完全错误的。请提供一个场景作为示例,以便我更好地理解。谢谢
我正在学习Dagger2,并试图构建一个非常愚蠢的示例(Mainactivity必须实例化一个汽车类)。 null 完成我的汽车课
为了理解何时会需要使用结构体,让我们编写一个计算长方形面积的程序。我们会从单独的变量开始,接着重构程序直到使用结构体替代他们为止。 使用 Cargo 来创建一个叫做 rectangles 的新二进制程序,它会获取一个长方形以像素为单位的宽度和高度并计算它的面积。示例 5-8 中是项目的 src/main.rs 文件中为此实现的一个小程序: 文件名: src/main.rs 示例 5-8:通过分别指
问题内容: 我正在重写我的应用程序以使用Flux,但是从商店检索数据时遇到问题。我有很多组件,它们嵌套很多。其中有些是大(),有些是小而简单(,)。 我一直在努力从组件存储层次结构中读取数据。 我尝试了两种极端的方法,但我都不喜欢: 所有实体组件都读取自己的数据 需要从Store获得一些数据的每个组件仅接收实体ID,并自行检索实体。 例如,被传递,并传递。 此方法有几个重大缺点(在代码示例下讨论)