在React / Redux多页面应用程序中放置页面的初始配置数据的位置?

时间:2017-09-26 10:36:41

标签: reactjs redux react-redux

在React / Redux多页面应用程序中放置页面的初始配置数据的位置?

  

这个问题最初有短语“永不改变数据”而不是“页面的初始配置数据”。前者是我在搜索答案时使用的词语。现在重新措辞,因为“永不改变”意味着数据不是常数,即使在单页面视图中没有改变。初始数据来自后端数据库。在我们的情况下注入JSP但它可能是在非JSP应用程序中加载的ajax。

我们的案例是为了进一步说明这一点:

  

我们有一个使用JSP生成HTML和普通jQuery JavaScript的Java Spring服务器。该设置正在慢慢更新以使用React / Redux。每个页面都是一个独立的React应用程序,以便于过渡。

     

在其中一个页面中,我们显示了一个表格和2个搜索过滤器。搜索过滤器是对象的下拉列表(id,名称对)和日期选择器。对象作为底层数据库的列表加载。它们在单页视图中永远不会改变。

     

我们将一些初始配置数据注入到JSP页面中,React应用程序通过window.config = {}使用window.config.language = "en"

     

目前我们通过ajax加载这些droplist对象并将它们放入Redux存储中。但是,它们在初始加载后永远不会改变。因此,我们认为最好将它们直接注入JSP,因为我们在那里有配置数据(window.config.droplistObjects = []

     

除了一些配置项(语言)和一些特定于组件的短暂状态之外,几乎所有页面状态都在Redux中。所有其他数据都通过ajax加载。

我想到了一些地方:

  1. Redux商店
  2. 反应主要组件
  3. 全球变量,例如window.config.droplistObjects = []
  4. 其他地方

1 个答案:

答案 0 :(得分:1)

我认为你可能会过度思考这个问题:你所做的事情对我来说似乎没问题。 这就是我看到这个工作的方式:

  1. 从Redux操作中的db中获取数据
  2. reducer更新状态
  3. 容器组件将更新后的状态传递给哑​​组件
  4. 查看更新
  5. 我没有看到任何问题。我已经用这个基本结构写了至少4个不同的应用程序,一对使用Firebase和一对红宝石后端。

    我不确定这会回答你的问题,但我希望它可以帮助你退后一步,更清楚地看到情况。