我与Redux
合作已近一个月了。我的问题是,我将所有应用数据都放在redux store
中,但是我是否应该将切换状态设置为帮助我在redux
状态下更改我的用户界面,或者我应该在每个状态下管理只做一页
this.setState({ showActiveForm : false })
答案 0 :(得分:8)
对此没有正确或错误的答案。为了帮助您做出决定,以下是一些常见的经验法则,直接来自redux documentation:
将大部分UI状态保留在redux中的另一个好处是,您可以编写更多无状态功能组件,并在未来版本的React中使用performance optimisations they will bring:
此模式旨在鼓励创建应包含大部分应用的简单组件。将来,我们还可以通过避免不必要的检查和内存分配,对这些组件进行性能优化。
答案 1 :(得分:6)
目前的最佳做法是使用本地状态来处理user interface (UI)
州的状态,而不是data
。
您的案例就是上述的完美范例。因此管理组件隐藏和显示的状态必须在本地状态本身而不是redux store
您可以存储在本地状态的另一个UI数据示例是选项列表中当前选定的选项卡。
考虑何时使用local state
的好方法是考虑您存储的值是否会被其他组件使用。如果某个值仅针对单个组件,则可以将该值保存在local state.
进一步详述
Redux
对于触发您需要在多个组件或多个路径上访问的事件也很有用。这方面的一个例子是登录模式,可以通过应用程序中的多个按钮触发。您可以有条件地在应用程序的顶层渲染它,并使用Redux操作通过更改商店中的值来触发它,而不是有条件地在十几个地方渲染模态。
答案 2 :(得分:3)
通常,经验法则是您使用redux store
来管理应用程序中的数据,即存储从服务器获取的项目以及用于ui行为的本地react state
,例如在您的案例中切换。但它并不是一个严格的规则,例如,如果您需要从多个地方切换某些内容,那么redux
更容易使用
答案 3 :(得分:3)
使用react redux时我考虑的3点
1.在本地状态下保持UI状态和暂时数据(例如表单输入)。
2.保持您要在Redux商店中的组件之间共享的数据。
3.从服务器获取的数据应该转到redux store。
答案 4 :(得分:2)
这取决于组件的组织方式。如果跨多个组件使用切换状态,那么我更喜欢通过redux store管理状态。 如果状态是该组件的本地状态,并且如果它未在其他任何地方使用,那么最好的事情就是管理组件中的状态。因此,该组件将是自包含的。