2017-09-26 79 views
1

在哪里把页面的初始配置数据放在React/Redux多页面应用程序中?哪里可以在React/Redux多页面应用程序中放置页面的初始配置数据?

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

我们的情况是在这里进一步说明这一点:

我们必须使用JSP生成HTML和纯的jQuery JavaScript的一个Java春服务器。该设置正在慢慢更新为使用React/Redux。每个页面都是一个独立的React应用程序,以便更轻松地转换

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

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

目前我们通过ajax加载这些droplist对象,并将它们放入Redux存储中。但是,初始加载后它们从不改变。所以,我们认为可能更好地将它们直接注入到JSP中,因为我们有一个用于配置数据的地方(window.config.droplistObjects = []

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

少数地方进入脑海:

  1. 终极版店
  2. 阵营主要成分
  3. 全局变量像window.config.droplistObjects = []
  4. 别的地方
+0

您可以创建一个常量文件并将该数据导出为数组或对象,并将其导入组件并使用它。 –

+0

是的。真正的应用程序使用的不是国家。所以contant文件是不可能的。我将重新回顾这个问题以反映这一点。 –

+0

固定数据是否总是来自数据库?它有多大? –

回答

1

我想你可能是超越这一点:你已经做的事似乎很好我。 这是我看到这个工作:

  1. 从DB你的终极版动作
  2. 减速更新
  3. 容器组件通过更新后的状态哑组件
  4. 视图获取更新
  5. 状态中获取数据

我没有看到任何问题。我已经用这个基本结构编写了至少4个不同的应用程序,一对使用Firebase和一对红宝石后端。

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

+0

谢谢,我很欣赏答案,我认为你可能是对的。我发布了这个问题,因为我们的项目成员对存储初始数据的位置有不同意见。我自己还没有强烈的意见,所以为社区提供智慧似乎是一个好主意。我会等待几个星期,看看是否有其他解决方案出现。 –

相关问题