函式庫 / SDK
react-hook-form/resolvers avatar
react-hook-form/resolvers

React Hook Form Resolvers:讓表单校驗器接入统一提交状态

驗證解析器:Yup、Zod、Superstruct、Joi、Vest、Class Validator、io-ts、Nope、計算類型、typanion、Ajv、TypeBox、ArkType、Valibot、effect-ts、VineJS 和 Standard Schema。

2,258 個 Star215 個 ForkTypeScriptMIT

秒懂

它是什麼?
這個 TypeScript 包為 React Hook Form 提供 Yup、Zod、Ajv、Valibot 等校驗庫的 resolver 适配層。它减少表单庫之間的接口差异,但类型推断、异步校驗和 schema 语义仍由所选校驗器决定。
適合誰用?
React Hook Form Resolvers 适合已经使用 React Hook Form,又希望沿用 Zod、Yup、Ajv 或 Valibot schema 的前端项目。不适合把 resolver 当作校驗规则本身,或需要脱离 React Hook Form 独立运行同一套提交流程的代码。
可以商用嗎?
可以。MIT 是寬鬆授權:你可以使用、修改並販售以它為基礎的軟體,只需保留著作權與授權聲明。
還在維護嗎?
有在維護。儲存庫最近一次提交在 30 天前。
用什麼語言寫的?
主要是 TypeScript(依據 GitHub 的語言統計)。

以上回答依據專案的 GitHub 資料(最近同步於 2026年9月14日)與我們的分析,不構成法律意見。

開源專案深度解析

项目定位 · react-hook-form-resolvers-deep-analysis

react-hook-form/resolvers 的 README 將项目描述為" Validation resolvers: Yup, Zod, Superstruct, Joi, Vest, Class Validator, io-ts, Nope, computed-types, typanion, Ajv, TypeBox, ArkType, Valibot, effect-ts, VineJS and Standard Schema"。本文只整理倉庫能直接核驗的內容,不把星標、Fork 或宣传语当成质量證明。README 在"React Hook Form Resolvers"下的说明是:This function allows you to use any external validation library such as Yup, Zod, Joi, Vest, Ajv and many others. The goal is to make sure you can directly integrate whichever validation library you prefer.。這给出的首先是项目边界,而不是已经完成的生產驗證。

@hookform/resolvers 的 resolver 會把外部 schema 的成功值或錯誤映射到 react-hook-form。使用 zodResolver、yupResolver 或 ajvResolver 時,先固定 schema、criteriaMode 和 defaultValues,再比較 handleSubmit 收到的 data 與 formState.errors。不同驗證器對轉換值、巢狀路徑和多個錯誤的處理可能不同。

實際測試應把空字串、型別錯誤、缺少巢狀欄位和合法輸入分成四組。對 zodResolver 觀察 transform 後的值,對 ajvResolver 觀察 JSON Schema 的 required 與 type 設定;若只測一個 required 欄位,無法代表 resolver 對整個表單的映射結果。

react-hook-form-resolvers-deep-analysis 第 1 節的檢查記錄應包含 package.json 與 README.md,並保留該節所述輸入與輸出。這個欄位能把文件中的功能描述連到實際程式狀態,避免只依畫面或單次成功結果下結論。對失敗案例也要保存錯誤文字與觸發條件,才能分辨設定問題、版本差異和程式邏輯。

适用场景 · react-hook-form-resolvers-deep-analysis

從 README 的"Links"和相關条目看,讀者可以先判断它是否解决自己的具體问題:React-hook-form validation resolver documentation。如果你的目標與這段说明不一致,就不應仅凭项目热度采用它。這里保留原项目名、命令和组件名,方便回到一手來源核對。 README 還列出了另一条可核對的信息:React-hook-form validation resolver documentation。這类原文条目可以帮助讀者設计試运行步骤,但不能代替自己的環境测試。

react-hook-form-resolvers-deep-analysis 第 2 節的檢查記錄應包含 src/index.js 與 build 目錄,並保留該節所述輸入與輸出。這個欄位能把文件中的功能描述連到實際程式狀態,避免只依畫面或單次成功結果下結論。對失敗案例也要保存錯誤文字與觸發條件,才能分辨設定問題、版本差異和程式邏輯。

工作方式 · react-hook-form-resolvers-deep-analysis

README 把工作方式分散寫在"Install"等段落中。可确認的線索包括:npm install @hookform/resolvers # npm yarn add @hookform/resolvers # yarn pnpm install @hookform/resolvers # pnpm bun install @hookform/resolvers # bun。這篇整理没有把未寫出的架構、性能或安全边界补成结论;真正的运行链仍應结合倉庫目錄、配置文件和版本標签檢查。

react-hook-form-resolvers-deep-analysis 第 3 節的檢查記錄應包含 onQueryChange 與 defaultValues,並保留該節所述輸入與輸出。這個欄位能把文件中的功能描述連到實際程式狀態,避免只依畫面或單次成功結果下結論。對失敗案例也要保存錯誤文字與觸發條件,才能分辨設定問題、版本差異和程式邏輯。

安装與第一次运行 · react-hook-form-resolvers-deep-analysis

第一次安装應從 README 给出的入口開始。当前可復核的命令是:

README 没有给出可直接復制的安装命令。

如果倉庫没有提供命令,本文不会替它编造安装步骤,而是建议先打開 README 的"Install"部分,确認係统依赖、默認端口和首次初始化動作。

react-hook-form-resolvers-deep-analysis 第 4 節的檢查記錄應包含 formState.errors 與 schema,並保留該節所述輸入與輸出。這個欄位能把文件中的功能描述連到實際程式狀態,避免只依畫面或單次成功結果下結論。對失敗案例也要保存錯誤文字與觸發條件,才能分辨設定問題、版本差異和程式邏輯。

配置與日常使用 · react-hook-form-resolvers-deep-analysis

日常使用的细节取决于项目實際文檔。README 的"Install"段落提到:| resolver | Infer values from schema | criteriaMode | | -------------------- | -------------------------------- | ----------------------------------------------------------------------- | | AJV | | firstError \| all | | ata-validator |。對于配置文件、環境变量、權限和數據目錄,当前稿只记錄來源明确的部分;未寫明的默認值必须在测試環境中驗證,并保留可回滚的配置副本。 同一部分還提到:React-hook-form validation resolver documentation。

react-hook-form-resolvers-deep-analysis 第 5 節的檢查記錄應包含 Podfile 與 Metro 日誌,並保留該節所述輸入與輸出。這個欄位能把文件中的功能描述連到實際程式狀態,避免只依畫面或單次成功結果下結論。對失敗案例也要保存錯誤文字與觸發條件,才能分辨設定問題、版本差異和程式邏輯。

README 能确認的限制 · react-hook-form-resolvers-deep-analysis

README 能确認的限制比宣传頁面更重要。当前來源没有證明react-hook-form/resolvers具备固定的兼容矩阵、服務等級、性能基准或长期支持承诺。README 只明确寫到"Most of the resolvers can infer the output type from the schema. See comparison table for more details."。這类未知项應在选型记錄里列為待驗證事项,而不是被改寫成肯定句。

react-hook-form-resolvers-deep-analysis 第 6 節的檢查記錄應包含 StreamSubscription 與 cancel,並保留該節所述輸入與輸出。這個欄位能把文件中的功能描述連到實際程式狀態,避免只依畫面或單次成功結果下結論。對失敗案例也要保存錯誤文字與觸發條件,才能分辨設定問題、版本差異和程式邏輯。

安全、隐私與許可證 · react-hook-form-resolvers-deep-analysis

許可證信息來自倉庫元數據和 LICENSE 文件:当前 SPDX 標识為 MIT。它说明代码分發和修改需要按許可證处理,但不等于项目已经完成你的安全审查。README 没有明确说明的凭證管理、網络暴露、日志保留和第三方依赖,仍應由部署者逐项檢查。

react-hook-form-resolvers-deep-analysis 第 7 節的檢查記錄應包含 package.json 與 README.md,並保留該節所述輸入與輸出。這個欄位能把文件中的功能描述連到實際程式狀態,避免只依畫面或單次成功結果下結論。對失敗案例也要保存錯誤文字與觸發條件,才能分辨設定問題、版本差異和程式邏輯。

维護與升級观察点 · react-hook-form-resolvers-deep-analysis

维護判断只能引用可追溯信号:默認分支為 master,快照记錄 2258 個 star、216 個 fork、0 個開放 issue。README 的"API"內容為:| | type | Required | Description | | --------------- | -------- | -------- | --------------------------------------------- | | schema | object | | validation schema | | schemaOptions | object | | validation library schema options | |。這些信息可帮助安排升級復核,但不能替代發布记錄和变更测試。 维護時還應對照 README 的"Yup"段落:> ️ Pass context via useForm({ context }), not via yupResolver's schemaOptions. schemaOptions.context is overridden by the form context, so use the useForm context object instead.。

react-hook-form-resolvers-deep-analysis 第 8 節的檢查記錄應包含 src/index.js 與 build 目錄,並保留該節所述輸入與輸出。這個欄位能把文件中的功能描述連到實際程式狀態,避免只依畫面或單次成功結果下結論。對失敗案例也要保存錯誤文字與觸發條件,才能分辨設定問題、版本差異和程式邏輯。

編輯結論

React Hook Form Resolvers 适合已经使用 React Hook Form,又希望沿用 Zod、Yup、Ajv 或 Valibot schema 的前端项目。不适合把 resolver 当作校驗规则本身,或需要脱离 React Hook Form 独立运行同一套提交流程的代码。先用真實表单分别檢查 schema 输出、resolver 返回的 errors 與 infer 类型,再决定具體适配器和 mode 配置。

官方來源

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
社群筆記

社群筆記