javascript - 通量 + react : when to keep state of visual components at store

标签 javascript reactjs flux

有时并不明显:我应该在哪里保存 React View 的状态,即事件选项卡、选定选项、切换器值、输入验证标志?

其实有两种选择:

  1. 执行一个操作并保存数据
  2. 将该数据保存为 View 的状态

哪个更好?存储是否仅用于来自服务器的数据?


我的考虑:

  1. 将数据保存在存储中是不好的,因为这会导致一系列操作。示例:您需要下载有关选项卡选择的数据 - 因此您触发了一个操作 NEW_TAB_SELECTED 并从处理它的商店触发了一个新操作 DOWLOAD_TAB_DATA
  2. 保持数据在 View 中可以避免第一个操作 (NEW_TAB_SELECTED) 并避免操作链。但是,如果我想离开此 View ,如何保留选定的选项卡?

最佳答案

应该保留在组件状态中的是那些只影响那个组件的东西。

因此,例如,如果您有一个打开以显示更多内容的组件,那么 isOpen 标志可以保持状态,因为它在组件内部。

如果信息不是组件的一部分(例如消息的文本和消息是否已被阅读),则应将其保存在商店中并根据需要在应用程序中传播。

更改组件的状态将导致它重绘,因此请尽量将状态保持为其状态的最小可能表示,并且仅将这些属性存储在 this.state 中。

因此,根据我从您的问题中收集到的信息,我建议保持事件选项卡、选定选项、切换器值以及输入是否在 this.state 中得到验证。它们都是组件的属性,但不影响任何其他组件。我会将填充 View 的数据保留在商店中。我会在 this.state 中保留指示 View 状态的标志。

希望对您有所帮助。

关于javascript - 通量 + react : when to keep state of visual components at store,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33866304/

相关文章:

javascript - 未捕获的语法错误 : Unexpected token in JSON at position 0

IE 和 Prototype 1.6.0.3 的 JavaScript 问题

javascript - 需要具有相对名称的 Ext JS 类

reactjs - 渲染 HOC(组件)而不更改 JSX 中的组件名称

javascript - 是什么导致网页重新加载?

javascript - altjs react 存储连接不起作用

javascript - JS/JQuery 中数组的分段

reactjs - 在尝试安装 react-bootstrap-table 时出现这样的错误

javascript - 将点击监听器附加到通过 map 呈现的组件

javascript - react 不覆盖状态