核心特性

🎯

接口先行

面向接口编程,易于扩展和测试

Svelte 5 Runes

使用最新的响应式 API

🔄

递归嵌套

支持深层对象和数组路径

异步验证

自动防抖和取消机制

🎨

Headless UI

完全自定义表单外观

📦

可组合

灵活的组件组合方式

示例列表

P0 Bug 修复验证

高级

⚠️ 验证5个致命Bug的修复:reset清理、依赖验证、路径设置、批量通知、并行验证

致命BugP0修复质量保证回归测试
查看示例 →

Performance Test

高级

性能测试:批量更新、路径优化、循环依赖、异步验证竞态条件

性能优化Bug修复测试
查看示例 →

BigInt 序列化

中级

安全序列化:支持 BigInt、Date、Map、Set 等特殊类型的 JSON 序列化

序列化BigIntWeb3类型安全
查看示例 →

Bug Fixes Demo

高级

验证关键bug修复:FieldArray路径重映射、依赖字段onChange、动态字段注销

Bug修复测试FieldArray内存管理
查看示例 →

基础表单

初级

简单的登录表单,演示表单字段、验证和提交

验证基础用法
查看示例 →

动态数组

中级

动态添加/删除表单项,拖拽排序,如团队成员列表

FieldArray动态字段拖拽排序
查看示例 →

字段依赖

中级

密码确认、折扣码验证等依赖其他字段的验证场景

依赖级联验证dependencies
查看示例 →

输入完成验证

中级

对比 validateOnComplete vs onChange vs onBlur 三种验证模式

验证时机防抖UX
查看示例 →

表单持久化

中级

使用 localStorage 实现自动保存、恢复、导出/导入

localStorageserialize自动保存
查看示例 →

值转换器

初级

使用内置和自定义 Transformers 格式化用户输入

格式化转换器Transformers
查看示例 →

多步表单

高级

分步验证、进度跟踪、步骤导航的注册表单

多步骤validateFields向导
查看示例 →

Solidity ABI 表单

高级

Web3 场景:Solidity 函数参数输入,支持动态数组和结构体

Web3ABI动态数组
查看示例 →

复杂嵌套 ABI

高级

递归渲染:tuple[]中嵌套tuple[],支持无限深度

Web3递归深度嵌套
查看示例 →

条件字段

中级

根据用户选择动态显示/隐藏字段

条件渲染动态表单
查看示例 →

Schema 表单

高级

通过 JSON Schema 自动生成表单

Schema自动生成
查看示例 →

异步验证

高级

实时验证用户名是否可用

异步验证
查看示例 →

快速开始

import { useFormState, Form, FormField, Validators } from '@biubiu/formstate';

const form = useFormState({
  fields: {
    email: {
      validator: Validators.compose(
        Validators.required(),
        Validators.email()
      )
    }
  }
});

<Form {form} onSubmit={handleSubmit}>
  <FormField name="email" label="Email">
    {#snippet children({ value, onInput, onBlur })}
      <input type="email" {value} oninput={e => onInput(e.target.value)} onblur={onBlur} />
    {/snippet}
  </FormField>
</Form>