我有一个使用React和Redux构建的顺序数据收集应用程序。现在,我有每个页面的内部状态,它有一个表单,当用户点击"提交"按钮,我将调度在状态中收集的数据并更新我的Redux存储。我是否应该对输入的每个密钥(去抖动)进行操作,还是应该将其存储在本地状态并立即更新Redux存储?
如果我在每个按键上向Redux商店发送操作,那么会出现性能问题,因为它不是异步调用。
答案 0 :(得分:0)
嗯,答案是:这取决于。
有些人认为,如果组件中也有内部状态,我们会失去使用中央存储(如Redux)的一些优点。例如,如果您的所有应用程序状态只是redux存储,存储存储或导致该存储的操作序列,将为您提供可能发生错误之前发生的事情的完整画面。
我认为这是过分的。在组件的内部状态中存储少量内容是完全正常的,但应该有一个定义明确的行。
如果是表单,您将拥有受控制的输入元素,并且您需要一种机制来通过操作提交表单。有必要在redux商店中提供表单的内容。
一种方法是将内容置于内部状态,并在稍微去抖后将它们置于redux形式。但这有一些边缘情况。如果用户在少量去抖时间内提交表单怎么办?商店中的表格不完整。是否值得考虑所有边缘案例?
我相信只需从redux表单控制表单元素是最简单的解决方案。人们可以想象的性能问题并不是真正的问题。这也是redux-form
的作用(您可以看一下如何实现灵感)。