@formisch/react

中文文档
1.2.0发布于 2026/11/01MITTypeScriptES Module零依赖构建来源已验证近 30 天下载 6.6万

轻量级、先行型和完全类型安全的形式库

中文使用文档
文档目录7 节
  1. 要点
  2. 示例
  3. 比较
  4. 愿景
  5. 合作伙伴
  6. 反馈
  7. 许可证

反应的福米施

Formisch是一个基于Schema的无头形式库,用于React. 它管理形态状态和验证. 它的型号安全,默认速度快,而由于其模块化设计,它的捆绑尺寸也很小. 试试看 游乐场来啊!

福尔米施也可供 角质, (中文(简体) ), 霍诺克, (中文(简体) ), 预录, (中文(简体) ), 齐克, (中文(简体) ), 原生反应, (中文(简体) ), 固态JS, (中文(简体) ), 丝绒 财务报告和审定财务报表 阴道。 。 。 .

要点

  • 从2.5 kB开始的小捆绑大小
  • 与 Valibot 基于 Schema 的验证
  • 编辑器中自动补全的安全性
  • 开放源码和全面测试,覆盖率为100%
  • 速度快 —— 只有在必要的情况下才能重新投降
  • 最小、可读和深思熟虑的API
  • 支持所有本地 HTML 窗体字段

示例

每个表格都从 useForm 钩. 它根据所提供的 Valibot 计划 初始化了你的表型商店 并推断出它的类型 接下来,将表格包装在 <Form /> 组件。 土生土长的薄层 <form /> 处理构成验证和提交要素。 然后,你可以访问一个田的状态与 useField 钩子或 <Field /> 要连接您输入的组件.

import { Field, Form, useForm } from '@formisch/react';
import * as v from 'valibot';

const LoginSchema = v.object({
  email: v.pipe(v.string(), v.email()),
  password: v.pipe(v.string(), v.minLength(8)),
});

export default function LoginPage() {
  const loginForm = useForm({
    schema: LoginSchema,
  });

  return (
    <Form of={loginForm} onSubmit={(output, event) => console.log(output)}>
      <Field of={loginForm} path={['email']}>
        {(field) => (
          <div>
            <input {...field.props} value={field.input} type="email" />
            {field.errors && <div>{field.errors[0]}</div>}
          </div>
        )}
      </Field>
      <Field of={loginForm} path={['password']}>
        {(field) => (
          <div>
            <input {...field.props} value={field.input} type="password" />
            {field.errors && <div>{field.errors[0]}</div>}
          </div>
        )}
      </Field>
      <button type="submit">Login</button>
    </Form>
  );
}

此外,Formisch还提供了几种功能(我们称之为"方法"),可用于读取和操纵形式状态. 其中包括: focus, (中文(简体) ), getDeepErrorEntries, (中文(简体) ), getDeepErrors, (中文(简体) ), getDirtyInput, (中文(简体) ), getDirtyPaths, (中文(简体) ), getErrors, (中文(简体) ), getInput, (中文(简体) ), handleSubmit, (中文(简体) ), insert, (中文(简体) ), isDirty, (中文(简体) ), isEdited, (中文(简体) ), isTouched, (中文(简体) ), isValid, (中文(简体) ), move, (中文(简体) ), pickDirty, (中文(简体) ), remove, (中文(简体) ), replace, (中文(简体) ), reset, (中文(简体) ), setErrors, (中文(简体) ), setInput, (中文(简体) ), submit, (中文(简体) ), swap 财务报告和审定财务报表 validate。这些方法允许您在程序上控制表格.

比较

使得福米斯奇独有的是其框架-不可知性核心,它与你所使用的框架完全本土. 它通过在核心软件包构建时插入框架特定的反应块来工作,为任何UI更新赋予你本土性能. 模块化方法 API 仅通过包含您导入的方法来保持从 ~2.5 kB 开始的捆绑,端到端类型安全覆盖了深层嵌入路径和字段阵列,其TypeScript 推论即使在形式增长时也保持了快.

对于一个侧面查看 Formisch 如何比对反应钩形和TanStack形,参见 比较指南。 。 。 .

愿景

我对Formisch的愿景是建立一个框架不可知的平台,类似于 维特但是对于形式来说——一个共享的核心,让同样的精神模型和代码基础在本土工作,跨越每一个现代UI框架.

合作伙伴

感谢我们的伙伴们支持发展! 加入他们 并促进开源软件的可持续性!

Partners of Formisch

反馈

找到一个错误或有一个想法 如何改进库? 请填写一个 问题我们一起可以让表格变得更好!

许可证

这个项目是免费提供的,并获得许可证 麻省理工学院许可证。 。 。 .

版本与发布记录

@formisch/react 共发布 22 个版本,首次发布于 2025/12/04;过去 12 个月发布了 22 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
1.2.0latest2026/11/0114 天前
1.1.12026/10/2620 天前
1.1.02026/09/082 个月前
1.0.02026/08/202 个月前
1.0.0-rc.12026/08/202 个月前
1.0.0-rc.0rc2026/06/234 个月前

关于 @formisch/react 的常见问题

@formisch/react 是什么?

轻量级、先行型和完全类型安全的形式库

如何安装 @formisch/react?

在项目目录运行 npm install @formisch/react,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:react(>=16.8.0 <20)、valibot(>=1.4.1 <2)、react-dom(>=16.8.0 <20)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@formisch/react 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@formisch/react 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@formisch/react 可以商用吗?

@formisch/react 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@formisch/react 的下载量有多少?

根据 npm 官方下载统计,@formisch/react 在 2026/10/16 – 2026/11/14 这 30 天内被下载 65,876 次,日均约 2,196 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@formisch/react 还在维护吗?

最新版本 1.2.0 发布于 2026/11/01(14 天前);至今共发布 22 个版本,其中过去 12 个月发布了 22 个;首次发布于 2025/12/04。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。