代码之家  ›  专栏  ›  技术社区  ›  Saqib Naseeb

使用Redux响应组件状态管理

  •  0
  • Saqib Naseeb  · 技术社区  · 6 年前

    所以,基本上,我遇到了许多文章,它们都提到了通过Flux或Redux管理状态。 我想知道UI组件有自己的状态如何? 让redux管理API调用和success toast消息等是否是一个好的实践,但是UI组件应该有自己的本地状态? 请有人详细说明行业中的最佳实践是什么?

    3 回复  |  直到 6 年前
        1
  •  0
  •   vijayst    6 年前

    尽管这个问题需要征求意见,但我还是要留下我的答案。在这方面没有标准的最佳实践。如果有不止一个人在编写代码,那么它可以归结为您团队的便利性和基本规则。

    我经常使用Redux。但是,我不会在组件中避免使用本地状态。

    表单处理(如input onchange处理程序)需要本地状态。对onchange处理程序使用全局状态不是性能。

    可重用组件使用本地状态。同样,它归结为可重用性是技术可重用性还是业务可重用性。如果要开发自定义滚动条组件,请使用本地状态。但是,如果您使用的是在应用程序中随处使用的注释表单,请使用全局状态。

    我宁愿把大部分东西都放在全球范围内。我也用了雷霆。在redux thunk中,可以在thunk函数中访问全局状态。这是非常有用的,因为它避免了对到处传递的props/context的依赖。

    我确实在当地保留了一些简单的东西——例如,显示/隐藏一些东西。我不介意等承诺解决后再利用地方政府隐藏一些东西。

    总体而言,使用全局状态与本地状态的决定主要基于便利性。除了你和你的团队所能接受的,没有标准的规则。

    react是一种声明性地处理UI的方法。框架中有一些规则,如状态、属性、上下文。由开发人员根据这些原语使UI具有声明性和性能。开发人员如何做并不重要,只要代码是可维护的,并且被其他人理解。

        2
  •  0
  •   Alex Bass    6 年前

    好问题!答案通常是“视情况而定”,但在某些情况下,您可能更喜欢使用其中一个而不是另一个。

    使用redux存储与 应用 . 例如,应显示的当前页面/面板。正如您提到的,显示一个通知/消息-是在redux状态下存储是有意义的,因为另一种方法是在所有地方传递状态,例如,一个错误属性冒泡到您的根组件上,从而呈现toast消息。在获取/操作与整个应用程序相关的数据时,使用thunk也是一个好主意,例如,在多个地方出现的一个列表。

    使用组件状态存储仅与 组成部分 .也就是说,如果填写表单,则在组件状态(可能与 container and presentational components )因为此时的值与应用程序的其余部分不相关。

        3
  •  0
  •   Saqib Naseeb    6 年前

    在询问了许多专业人员和行业开发人员之后,我了解到通过Redux管理状态取决于您的应用范围。 但更重要的是,如果我正在开发企业应用程序,那么必须通过Redux管理应用程序状态。

    现在的问题是在我们的Redux商店里应该保存什么。好吧,您可以在Redux Store中存储几乎所有内容,但更好地管理组件的本地状态。例如,打开组件布尔值应在本地状态或任何字符串或头名称等中进行管理。