Skip to content

TanStack Form

v0.x
TypeScript

概述

TanStack Form 是一个强大的表单状态管理库,提供类型安全的表单处理和灵活的校验方案。配合 Zod 使用,可以实现声明式的表单校验。

核心优势
  • 类型安全:完整的 TypeScript 支持
  • 标准 Schema 支持:原生支持 Zod、Valibot 等
  • 灵活校验时机:onBlur、onChange、onSubmit
  • 框架无关:可与任何 UI 组件库集成

基本用法

基础表单

使用 Zod 校验

TanStack Form 原生支持 Zod,无需额外适配器:

Zod 校验

校验时机

TanStack Form 支持多种校验触发时机:

时机说明使用场景
onBlur字段失焦时推荐,用户体验好
onChange值变化时实时反馈(可能频繁)
onSubmit提交表单时简单场景
校验时机配置
推荐使用 onBlur

推荐使用 onBlur 校验,避免用户输入时频繁出现错误提示,提升用户体验。

异步校验

支持异步校验,如检查用户名是否已存在:

异步校验

带防抖的异步校验

防抖异步校验

与 UI 组件库集成

通用模式

无论使用哪个 UI 组件库,集成模式都类似:

UI 组件集成模式

shadcn-vue 示例

shadcn-vue 集成

Element Plus 示例

Element Plus 集成

Ant Design Vue 示例

Ant Design Vue 集成

编辑表单(回填数据)

编辑表单

表单状态

表单状态
使用表单状态

常用 Zod 校验规则

常用 Zod 规则

常见问题

校验不触发?

确保绑定了 @blur="field.handleBlur",否则 onBlur 校验不会触发。

输入时频繁报错?

使用 onBlur 替代 onChange,或添加防抖。

只在提交时校验?

只配置 onSubmit 校验器:

typescript

相关资源

Released under the MIT License.