arv-validate

中文文档
1.1.4发布于 2026/11/03MITTypeScriptES Module零依赖

高性能、反应式、原子式表单验证和清理引擎(Vanilla JS、Vue 3、React、Node.js,零依赖)

中文使用文档
文档目录8 节
  1. 安装
  2. 快速入门
  3. 关键特性
  4. 国际化(i18n)
  5. 可用的适配器
  6. API参考
  7. 文档
  8. 许可证

arv-validate

用于JavaScript和TypeScript的超快速、零依赖、原子、响应式表单验证和数据清理引擎。

npm version license Zero Dependencies TypeScript

英语 | 西班牙语

arv-validate 是 100% framework-agnostic. 它可以在Vanilla JS、Vue 3、React、Angular、Svelte、Node.js、Bun、浏览器或Web Workers中运行。


安装

npm install arv-validate

快速入门

import { createValidator, required, email, minLength, trim } from 'arv-validate'

const validator = createValidator(
  {
    name: '',
    email: ''
  },
  {
    name: [required(), minLength(3), trim()],
    email: [required(), email(), trim()]
  }
)

// 1. Live mutations automatically revalidate in real-time
validator.values.name = 'John Doe'
validator.values.email = '[email protected]'

// 2. Validate all fields (e.g. before submitting)
const isValid = await validator.validate()

// 3. Inspect errors
console.log(validator.state.errors)

// 4. Get sanitized, typed payload ready for API request
const payload = validator.getPayload()
console.log(payload) // { name: "John Doe", email: "[email protected]" }

关键特性

  • ⚡ 实时验证深度递归ES6代理立即跟踪突变并仅重新计算受影响的字段。
  • 🌐 内置的i18n:默认为英语,内置西班牙语(setLocale('es')),以及自定义字典支持 configureMessages().
  • 🔌 100%框架不可知零DOM依赖。在JavaScript或TypeScript的任何地方使用。
  • 🧩 40+内置规则: required, email, minLength, maxLength, between, date, afterDate, sameAs, when, custom等等。
  • 🔄 异步验证和竞争条件安全:处理内置过时令牌无效的承诺(例如用户名可用性检查)。
  • 🧹 变压器及卫生处理: trim(), toLowerCase(), toFloat(), round(), digitsOnly(), toDate() 无需改变UI输入值。
  • 🌳 嵌套对象和数组:完全支持点表示法('user.address.zipCode')和动态数组(each())。
  • 📦 零依赖关系:纯现代JavaScript (~ 6kb gzip)。

国际化(i18n)

在语言之间切换或提供自定义消息:

import { setLocale, configureMessages } from 'arv-validate'

// Switch to Spanish
setLocale('es')

// Switch back to English (default)
setLocale('en')

// Override individual messages globally
configureMessages({
  required: 'Field is required',
  email: 'Must be a valid email address'
})

可用的适配器

框架包安装
Vanilla JS / Node.jsarv-validatenpm i arv-validate
Vue 3arv-validate-vuenpm i arv-validate-vue
反应@arv-validate/react(很快)
角@arv-validate/angular(很快)

API参考

createValidator(initialData, schema, options) 返回:

  • v.values响应式实时编辑代理(支持嵌套点表示法)。
  • v.state:平面状态快照 { values, errors, touched, validating, isValid, isDirty }.
  • v.validate():将所有字段标记为触摸,执行同步和异步规则,返回 Promise<boolean>.
  • v.validateField(field):立即验证单个字段。
  • v.touch(field):表示该字段已触碰(@blur)。
  • v.untouch(field):不标记触碰过的字段。
  • v.hasError(field):返回 true 如果字段被触摸并且有一个错误。
  • v.getError(field):返回错误消息或 null.
  • v.isValidating(field?):返回 true 如果异步规则正在运行。
  • v.getPayload(customFn?):为API调用返回经过处理和转换的对象。
  • v.reset(newValues?):重置状态以清除初始值或使用新数据更新。
  • v.setValues(patch):同时更新多个字段。
  • v.subscribe(callback):注册状态更改监听器,返回退订函数。

文档


许可证

麻省理工学院© jccallo

版本与发布记录

arv-validate 共发布 7 个版本,首次发布于 2026/10/24;过去 12 个月发布了 7 个版本。

版本发布日期距今
1.1.4latest2026/11/03今天
1.1.32026/10/259 天前
1.1.22026/10/2410 天前
1.1.12026/10/2410 天前
1.1.02026/10/2410 天前
1.0.02026/10/2410 天前

关于 arv-validate 的常见问题

arv-validate 是什么?

高性能、反应式、原子式表单验证和清理引擎(Vanilla JS、Vue 3、React、Node.js,零依赖)

如何安装 arv-validate?

在项目目录运行 npm install arv-validate,或使用 pnpm add / yarn add / bun add。

arv-validate 支持 TypeScript 吗?

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

arv-validate 支持 ESM 还是 CommonJS?

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

arv-validate 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=16.0.0。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

arv-validate 可以商用吗?

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

arv-validate 还在维护吗?

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