react-hook-form

Active

react-hook-form / react-hook-form

πŸ“‹ React Hooks for form state management and validation (Web + React Native)

Stars

44.7K

Forks

2.4K

NPM Downloads

-

Bundle (gzip)

-

OtherReact & React NativeMITdxform-builderformsreact-hooksreact-nativereactjstypescriptuxvalidation

Recent Releases

v7.76.1 β€” Version 7.76.1

🐞 fix: pass options parameter through setValues to enable validation (13457) 🐞 fix(setValues): emit whole-form change without stale name/type (13450) πŸš— perf(setValues): thread skipClone through s

May 23, 2026

v7.76.0 β€” Version v7.76.0

πŸͺ­ close 13141 improve isDirty sync with dirtyFields state (13370) 🐞 fix isValidating reactivity when validatingFields is not subscribed (13440) πŸ›Ί test: fix duplicate-word typos in test descriptio

May 16, 2026

v7.75.0 β€” Version 7.75.0

🦧 feat: improve get dirty fields prune empty fields (13363) diff + dirtyFields: { test: { data: false } } - dirtyFields: {} // removed the empty node with false value 🎹 typescript 6.0 (133

May 2, 2026

v7.74.0 β€” Version 7.74.0

πŸͺ‡ feat: setValues (13201) tsx setValues((data) => { return { ...data, name: 'test' } }) setValues(formValues); 🐞 fix: preserve previous field value when useController na

Apr 25, 2026

v7.73.0 β€” Version 7.73.0

⚑perf: memoize submit (13378) πŸš‰ perf: improve deepEqual performance (13362) πŸ‘€ perf: skip re-render in setValue when value is unchanged (13352) βœ‚οΈ remove unneeded flag check for shouldDirty 🚨 fi

Apr 18, 2026

v7.72.1 β€” Version 7.72.1

🐞 test: add isDirty check for numeric string keys in defaultValues (issue 13346) (13347) 🐞 fix: prevent setValue with shouldDirty from polluting unrelated dirty fields (13326) 🐞 fix: memoize cont

Apr 3, 2026

v7.72.0 β€” Version 7.72.0

βš“οΈ feat: built-in form level validate (13195) tsx const { register, formState: { errors } } = useForm({ validate: async (formValue) => { if (formValue.test1.length > formValue.test.length)

Mar 22, 2026

v7.71.2 β€” Version 7.71.2

πŸ•΅οΈβ€β™‚οΈ fix: use DeepPartialSkipArrayKey for WatchObserver value parameter (13278) 🧹 fix(clearErrors): emit name signal for targeted field updates (13280) thanks to @veeceey, @kaigritun, @pgoslata

Feb 20, 2026