Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 使用通量存储_Reactjs_Flux - Fatal编程技术网

Reactjs 使用通量存储

Reactjs 使用通量存储,reactjs,flux,Reactjs,Flux,我正在做一个时间很短的项目。现在已经很少有流量存储可以管理应用程序状态的不同方面,并且相对独立 我有两个问题: 现有的某些存储正在发出多种类型的更改事件。这是否表明存储区处理了太多应该在单独存储区中的不相关数据,或者这是一种常见情况 我们需要编写一个React组件,该组件依赖于已经存在的多个存储,并且还需要查询服务器以获取一些特定信息,以便在页面上呈现,然后允许用户修改这些信息。因此,在该组件可以呈现之前,它需要确保所有存储包含它们需要的内容,并发出操作来填充缺少的任何内容。我的问题是如何处理这

我正在做一个时间很短的项目。现在已经很少有流量存储可以管理应用程序状态的不同方面,并且相对独立

我有两个问题:

现有的某些存储正在发出多种类型的更改事件。这是否表明存储区处理了太多应该在单独存储区中的不相关数据,或者这是一种常见情况


我们需要编写一个React组件,该组件依赖于已经存在的多个存储,并且还需要查询服务器以获取一些特定信息,以便在页面上呈现,然后允许用户修改这些信息。因此,在该组件可以呈现之前,它需要确保所有存储包含它们需要的内容,并发出操作来填充缺少的任何内容。我的问题是如何处理这个问题。最好创建一个新的存储来获取组件所需的特定数据并依赖于其他存储(使用通常的flux存储依赖规则),还是让组件知道它直接依赖于哪些特定存储

问题的第一部分:视情况而定。通量不会强迫你遵守严格的规则。例如,对所有内容只使用一个存储。我参与了一个项目,几乎所有组件都有自己的存储,另一个项目中,每个视图都有一个存储,用于处理数据模型和所有其他状态。如果不知道项目的具体情况(规模、复杂性等),我就不能推荐一个。我可能会选择对您和您的团队有意义的最少数量的存储,并根据需要进行重构(即,当您觉得它处理太多或单个文件包含太多不相关的代码时)。无论什么最适合你的情况,让你最舒服

对于其他部分:由于您希望组件仅在填充所有存储区的数据后才渲染,所以我将引入新存储区来处理服务器数据,并使用Dispatcher的
waitFor
方法来定义依赖项。如果选择直接使用存储,则可以使用某种初始状态渲染组件,将微调器加载到缺少的部分或禁用用户编辑,并且在获取数据后,更新状态以显示其余数据/启用编辑。这需要更多的代码,但可以产生更好的用户体验。再说一遍,这完全取决于你的需要