
Vorms 核心 API 全解析useForm 与 useField 打造响应式表单体验【免费下载链接】vormsVue Form Validation with Composition API项目地址: https://gitcode.com/gh_mirrors/vo/vormsVorms 是一个基于 Vue Composition API 的表单验证库它提供了简洁而强大的 API帮助开发者轻松构建响应式表单。本文将深入解析 Vorms 的核心 API——useForm 和 useField带你快速掌握如何使用它们来创建高效、易用的表单。快速上手useForm 基础用法useForm 是 Vorms 的核心函数它负责管理整个表单的状态和验证逻辑。通过 useForm你可以轻松设置初始值、定义验证规则并处理表单提交。基本配置使用 useForm 的第一步是传入配置选项包括初始值和提交处理函数const { register, handleSubmit } useForm({ initialValues: { name: Alex, age: 18, }, onSubmit (values) { console.log({ values }) }, });这段代码定义了一个包含 name 和 age 字段的表单并设置了提交处理函数。initialValues 用于设置表单的初始值onSubmit 则在表单验证通过后被调用。注册表单字段有了表单实例后下一步是注册表单字段。Vorms 提供了 register 方法来完成这个任务const { value: name, attrs: nameAttrs } register(name) const { value: age, attrs: ageAttrs } register(age)register 方法返回一个对象包含 value 和 attrs 属性。value 是一个响应式变量用于双向绑定表单输入attrs 则包含了必要的事件处理函数需要绑定到表单元素上。深入理解useForm 高级特性表单验证Vorms 提供了灵活的验证机制。你可以在注册字段时指定验证规则register(name, { validate: (value) { if (!value) return 姓名不能为空 if (value.length 2) return 姓名至少需要2个字符 } })此外useForm 还支持在配置选项中设置全局验证函数useForm({ // ...其他配置 validate: (values) { const errors {} if (values.age 18) { errors.age 年龄必须大于等于18岁 } return errors } })验证时机控制Vorms 允许你控制验证触发的时机通过 validateMode 和 reValidateMode 选项validateMode初始验证模式默认为 submitreValidateMode提交后的验证模式默认为 change支持的验证模式包括blur、input、change 和 submit。表单状态管理useForm 提供了丰富的状态管理方法包括setValues设置多个字段的值setFieldValue设置单个字段的值setErrors设置多个错误setFieldError设置单个字段的错误resetForm重置表单到初始状态精细控制useField 独立字段管理除了通过 register 方法注册字段外Vorms 还提供了 useField 函数用于更精细地控制单个字段。基本用法useField 接收字段名称作为参数并返回与 register 类似的对象const { value: name, attrs: nameAttrs } useField(name)独立验证useField 允许你为单个字段指定验证规则而无需在 useForm 中集中定义const { value: email, attrs: emailAttrs, error } useField(email, { validate: (value) { if (!value) return 邮箱不能为空 if (!/^[^\s][^\s]\.[^\s]$/.test(value)) return 请输入有效的邮箱地址 } })字段元信息useField 返回的对象还包含了字段的元信息如 error、touched 和 dirtyerror字段的错误信息touched字段是否被触碰过即是否失去焦点dirty字段值是否被修改过这些元信息可以帮助你构建更丰富的表单交互体验。实际应用构建完整表单结合 useForm 和 useField我们可以构建一个功能完善的表单template form submithandleSubmit div label姓名/label input v-modelname v-bindnameAttrs / span v-ifnameMeta.touched nameMeta.error{{ nameMeta.error }}/span /div div label邮箱/label input v-modelemail v-bindemailAttrs / span v-ifemailMeta.touched emailMeta.error{{ emailMeta.error }}/span /div button typesubmit :disabledisSubmitting提交/button /form /template script setup import { useForm, useField } from vorms const { handleSubmit, isSubmitting } useForm({ initialValues: { name: , email: }, onSubmit(values) { console.log(表单提交:, values) } }) const { value: name, attrs: nameAttrs, ...nameMeta } useField(name, { validate: value !value ? 姓名不能为空 : undefined }) const { value: email, attrs: emailAttrs, ...emailMeta } useField(email, { validate: value { if (!value) return 邮箱不能为空 if (!/^[^\s][^\s]\.[^\s]$/.test(value)) return 请输入有效的邮箱地址 } }) /script总结Vorms 的 useForm 和 useField API 为 Vue 开发者提供了强大而灵活的表单管理工具。通过 useForm你可以轻松管理整个表单的状态和验证逻辑而 useField 则允许你对单个字段进行精细控制。无论是简单的登录表单还是复杂的多步骤表单Vorms 都能帮助你以更少的代码实现更强大的功能。其基于 Composition API 的设计理念也使得代码更加清晰、可维护。要深入了解 Vorms 的更多功能如表单数组处理、自定义验证器等可以查阅官方文档和源代码。Vorms 的源代码主要位于 packages/core/src/composables/useForm.ts 和 packages/core/src/composables/useField.ts 文件中你可以通过阅读这些代码来更好地理解其内部工作原理。开始使用 Vorms打造你的响应式表单体验吧【免费下载链接】vormsVue Form Validation with Composition API项目地址: https://gitcode.com/gh_mirrors/vo/vorms创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考