2017-03-06 113 views

回答

1

通常,经验法则是,你使用redux store在您的应用程序存储又名从服务器获取和UI行为当地react state,像你的情况切换项目管理数据。但它不是一个严格的规则,举例来说,如果你需要切换从多个地方的东西更容易使用redux

4

目前最好的做法是使用本地状态来处理您的user interface (UI)状态的状态,而不是data

你的情况就是上述的完美例子。因此,管理隐藏和显示组件的状态必须处于本地状态本身,而不是REDX存储区

您可以以本地状态存储的UI数据的另一个示例将是选项列表中当前选定的选项卡。

考虑何时使用local state的一个好方法是考虑您存储的值是否将被另一个组件使用。如果值是特定于只有一个组成部分,那么它的安全保持local state.

该值,进一步拟订

Redux也是触发在您需要的多个部件,或者跨越多个路由访问事件有用。一个例子就是一个登录模式,它可以通过你的应用程序中的多个按钮触发。您可以有条件地将其渲染到应用程序的顶层,并使用Redux操作通过更改商店中的值来触发它,而不是有条件地渲染十几个位置的模式。

1

这取决于您的组件的组织方式。如果在多个组件中使用切换状态,那么我更愿意通过redux store来管理状态。 如果该状态是该组件的本地状态,并且该状态不在其他任何地方使用,则最好的做法是管理该组件内的状态。因此该组件将是自包含的。

4

对此没有正确或错误的答案。为了帮助您决定,这里是直接采取一些经验共同规则从redux documentation

  • 做关于这个数据的应用程序关心的其他部分?
  • 您是否需要能够根据此原始数据创建更多派生数据?
  • 是否使用相同的数据驱动多个组件?
  • 您是否有能力将此状态恢复到给定的 时间点(即时间行程调试)?
  • 你想缓存数据(即使用什么状态,如果它已经存在,而不是重新请求它)?

以保持多数终极版的UI状态的另一个好处是,你可以写更多的无状态的功能组件,并利用performance optimisations they will bring在未来的版本阵营:

这种模式被设计成鼓励创建这些应该包含大部分应用程序的简单组件。未来,我们还可以通过避免不必要的检查和内存分配来针对这些组件进行性能优化。我与工作时考虑

+2

作为Redux FAQ的作者,是的,这是正确的答案:) – markerikson

1

3分Redux的反应在本地状态

1.keep UI状态和瞬态数据(如表格输入)。

2.保留您打算在Redux存储区中的组件之间共享的数据。

3.您从服务器获取的数据应该到达redux存储区。