# @mongez/react-form > Headless React form handler for both Web and React Native. Provides a `Form` / `NativeForm` component plus a `useFormControl` hook that handles registration, async-capable validation, value collection, dirty/touched/disabled state, controlled and uncontrolled inputs, reactive hydration, Standard Schema interop, and a localized validation rule system. Mongez React Form is unopinionated about UI — you build the input components, the library handles state and validation. Same `useFormControl` hook works on both Web (DOM ``) and React Native (`TextInput`). The Web entry point is `Form`; the React Native entry point is `NativeForm`. **v4 is a major rewrite.** `Form` and `NativeForm` are now **function components** (`forwardRef`) built over a plain, React-free engine class — `FormEngine` (which implements `FormInterface`). `FormEngine` replaces the old abstract `React.Component` base; `BaseForm` is now a **deprecated alias** for `FormEngine`, kept for one major. The form id is derived from React's `useId()`, so the old `Math.random()` SSR hydration mismatch is gone. v4 also adds genuine async-validation gating (`isValidating`), Standard Schema support (seal/zod/valibot, zero runtime dep), reactive hydration (`values` prop, `form.fill`, `form.setValues`, `form.setDefaultValue`), bulk server errors (`form.setErrors`), `validateOn: "change" | "blur" | "submit"`, awaited submit, and three new hooks: `useFieldArray`, `useWatch`, and accessibility helpers (`getInputProps` / `getErrorProps`). **Breaking in v4:** `useId` was renamed to `useControlId` (stops shadowing React 18's own `useId`); `useValue`, `useError`, and `useChecked` were removed with no alias — use `useFormControl` or `useWatch` instead. v4 also hardens dot-notation name collection: `__proto__` / `constructor` / `prototype` name segments are rejected (prototype-pollution guard), numeric segments above 10,000 are treated as object keys instead of array indices (sparse-array memory guard), and `patternRule` caches compiled patterns, caps the pattern source at 200 chars, and fails closed on values over 2000 chars (ReDoS guard). See `CHANGELOG.md`'s `[4.0.0]` entry for the full migration guide. ## Documentation - [Full documentation (LLM-optimized)](./llms-full.txt): single-file canonical reference covering installation, all hooks, all components, validation rules, events, and the React Native usage path. - [README](./README.md): human-facing documentation with tutorial-style examples. ## Key entry points - [`Form` component](./src/components/Form.tsx): web form **function component** (`forwardRef`; renders `