Position Absolute

我对反应的控制输入困境& redux


“不提供值(或将其设置为NULL)的输入是一个不受控制的组件。在受控输入中,渲染元素的值将始终反映价值支持。“

输入onchange事件是我一直小心的东西。在用户完成表单时,您不想执行太多的代码,它已经是第一个不愉快的经验,而不是迟缓的输入。这就是为什么我有一点问题被告知我应该随时处理所有输入州。

受控输入的目标是可预测性和可靠性™。虽然React Setstate方法通常是精细的性能,但Redux这是另一个故事。通过击败行动,执行中间摆,最终在每个击键的每个击键都达到减速器是昂贵的。

我得到了原因,但我不认为网页表单是为了用这种方式&这增加了一个复杂程度,我并不总是满意。我也没有惊讶的是yedux形式“>现在长期的性能问题。

如果我们不受控制,那么怎么办?

使用不受控制的输入,您可以处理2件事,默认值& validation.

幸运的是,反应为您提供了DefaultValue属性。就像它的名字说,这只会渲染一次。您将无法在后续渲染上更改道具。

这可能是某些形式的问题&功能。建议框,选择所有复选框,所有这些类型的输入,您需要保持状态同步。这是公平的,这是先进的形式功能。

不受控制的输入验证

表单验证不是我的新主题,而出于某种原因,我总是拿回那个主题。不要让我错了,Redux形式是一个很棒的代码。对我来说,这只是一个微小的比特,我并不是骗我的所有表格。

我的形式状态是我的,受控或不受控制的不是我的输入验证状态的关注,它是关于验证价值。我希望我的验证中间件保留我的表单验证状态,就是这样。

这就是为什么我构建了redux形式验证器。验证输入的小型验证中间件。我的目标是:

*快速集成
*快速验证
*避开我的方式
*足够小,我可以在将来轻松调整它

源代码 | 演示

你应该做不受控制的输入吗?我不知道,但如果你觉得受控输入是拖动,现在你有一个验证替代方案。

与Redux的控制输入

如果您仍然想要保留所有输入的输入,我会查看在Onchange事件上使用SetState方法,并限制自己按下每个击键上的Redux流程的事件。

这样,即使长形式,你也一定要保持良好的用户体验。

ressources.

Redux GitHub对不受控制的输入讨论
反应表格上的文档
控制VS反应中的不受控制的组件