强大的表单状态管理库,支持嵌套、动态字段、异步验证
面向接口编程,易于扩展和测试
使用最新的响应式 API
支持深层对象和数组路径
自动防抖和取消机制
完全自定义表单外观
灵活的组件组合方式
⚠️ 验证5个致命Bug的修复:reset清理、依赖验证、路径设置、批量通知、并行验证
性能测试:批量更新、路径优化、循环依赖、异步验证竞态条件
安全序列化:支持 BigInt、Date、Map、Set 等特殊类型的 JSON 序列化
验证关键bug修复:FieldArray路径重映射、依赖字段onChange、动态字段注销
简单的登录表单,演示表单字段、验证和提交
动态添加/删除表单项,拖拽排序,如团队成员列表
密码确认、折扣码验证等依赖其他字段的验证场景
对比 validateOnComplete vs onChange vs onBlur 三种验证模式
使用 localStorage 实现自动保存、恢复、导出/导入
使用内置和自定义 Transformers 格式化用户输入
分步验证、进度跟踪、步骤导航的注册表单
Web3 场景:Solidity 函数参数输入,支持动态数组和结构体
递归渲染:tuple[]中嵌套tuple[],支持无限深度
根据用户选择动态显示/隐藏字段
通过 JSON 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>