我一直在创建一个Reactjs应用程序。我遇到了一个问题,想知道从Firebase哪里获取数据。在根组件(App.jsx)或单个组件中获取数据集合是否更好?
目前,我有用户,产品和销售集。一些组件使用相同集合中的数据。例如:“付款”组件还将“销售”收款数据用于分析。
情况1:如果我在根组件中获取数据,则不必在组件内部获取数据。
第2种情况:如果我在组件内部获取数据,我将针对不同路径中的不同组件获取相同的数据两次。
请给我建议更好的处理情况的方法。
答案 0 :(得分:7)
您在问题中标记了Redux
,所以我假设您在自己的React App中使用了它?
如果您使用的是Redux
,请将所有提取内容放入actions
文件中。如果还有其他正在侦听受提取影响的状态的组件,它将自动重新呈现组件数据。无需两次提取。
答案 1 :(得分:0)
情况1:-如果从根组件中获取所有数据。一开始您将要处理大量数据,这会减慢应用程序的初始加载速度(但对于非常小的应用程序应该没问题)。不建议用于中大型应用程序。
情况2:-这种方法很好,但是会增加所有组件的较小延迟(用于从API获取数据),但是如果您担心带宽使用和延迟。您应该考虑使用像redux这样的统一数据存储。
使用来自redux / thunk等的action / sideEffects一次获取数据,并将其保存在redux存储中。在所有其他组件中消耗相同的数据。