提问人:mustadir mahmood 提问时间:11/13/2023 更新时间:11/13/2023 访问量:51
如何提高 React Hook Form 中的表单提供程序性能
How to improve form provider performance in React Hook Form
问:
由于 react 钩子表单提供程序基于上下文 Api,因此对于大型嵌套表单,由于在状态更新期间多次重新渲染,可能会导致性能问题。我在文档中遇到了这一部分:https://react-hook-form.com/advanced-usage#FormProviderPerformance,它基本上使用 react memo 来停止额外的重新渲染,除非属性 isDirty 发生变化。
我将上述实现添加到我的代码中,它有助于加快表单性能,但我现在意识到我的验证不起作用,因为我的备忘录没有检查 formState 的更新。https://codesandbox.io/s/provider-perf-forked-3jqlkj在此示例中,我们可以触发所需的错误消息,但一旦用户键入了某些内容,就无法将其删除。
我还尝试使用 useFormState 钩子,但这意味着我的整个表单结构将重新呈现,导致性能下降。有什么办法可以解决这个问题吗?
答: 暂无答案
评论
react-hook-form
如果您以正确的方式使用它,则不会进行那么多的重新渲染。不要在顶层使用,只在你需要的地方使用。最好进行正确的状态管理,而不是尝试使用 来提高性能。确实,它使用上下文 Api,但这并不意味着如果使用得当,它会导致重新渲染formState
React.memo