当前位置: 首页 > article >正文

Formily 如何进行表单验证

在这里插入图片描述

🤍 前端开发工程师、技术日更博主、已过CET6
🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1
🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》
🍚 蓝桥云课签约作者、上架课程《Vue.js 和 Egg.js 开发企业级健康管理项目》、《带你从入门到实战全面掌握 uni-app》

Formily 是一个基于 JSON Schema 的表单配置化方案,它可以帮助开发者快速构建和管理表单。Formily 提供了强大的表单验证功能,使得开发者可以轻松地定义和执行验证规则。本文将详细介绍 Formily 是如何进行表单验证的。

1. 定义验证规则

在 Formily 中,我们可以通过在 JSON Schema 中定义验证规则来进行表单验证。Formily 支持多种验证规则,如必填、最小长度、最大长度、正则表达式等。

以下是一个简单的示例,定义了一个用户名和密码的表单,并添加了相应的验证规则:

{
  "type": "object",
  "properties": {
    "username": {
      "type": "string",
      "title": "用户名",
      "x-decorator": "FormItem",
      "x-component": "Input",
      "required": true,
      "minLength": 3,
      "maxLength": 15
    },
    "password": {
      "type": "string",
      "title": "密码",
      "x-decorator": "FormItem",
      "x-component": "Input",
      "x-component-props": {
        "type": "password"
      },
      "required": true,
      "minLength": 6
    }
  }
}

在这个示例中,我们定义了两个字段:usernamepassword。对于 username 字段,我们设置了 requiredminLengthmaxLength 验证规则。对于 password 字段,我们设置了 requiredminLength 验证规则。

2. 执行验证

在 Formily 中,我们可以通过调用 form.validate() 方法来执行表单验证。form.validate() 方法会根据 JSON Schema 中定义的验证规则对表单进行验证,并返回验证结果。

以下是一个简单的示例,展示了如何执行表单验证:

import React from 'react';
import { createForm } from '@formily/core';
import { FormProvider, Field, Submit } from '@formily/react';

const form = createForm();

const schema = {
  // JSON Schema 定义
};

function App() {
  const handleSubmit = async () => {
    const isValid = await form.validate();
    if (isValid) {
      console.log('表单验证通过');
    } else {
      console.log('表单验证失败');
    }
  };

  return (
    <FormProvider form={form}>
      <Field schema={schema} />
      <Submit onClick={handleSubmit}>提交</Submit>
    </FormProvider>
  );
}

export default App;

在这个示例中,我们首先创建了一个 Formily 表单实例,然后定义了一个 JSON Schema。然后,我们使用 FormProviderField 组件来渲染表单。最后,我们定义了一个 handleSubmit 函数,该函数会在用户点击提交按钮时执行表单验证。

3. 自定义验证规则

除了内置的验证规则外,Formily 还允许我们定义自定义的验证规则。我们可以通过在 JSON Schema 中使用 x-validator 属性来定义自定义的验证规则。

以下是一个简单的示例,定义了一个自定义的验证规则:

{
  "type": "object",
  "properties": {
    "username": {
      "type": "string",
      "title": "用户名",
      "x-decorator": "FormItem",
      "x-component": "Input",
      "required": true,
      "minLength": 3,
      "maxLength": 15,
      "x-validator": {
        "name": "customValidator",
        "message": "用户名必须是字母或数字"
      }
    }
  }
}

在这个示例中,我们定义了一个名为 customValidator 的自定义验证规则。customValidator 验证规则会检查用户名是否是字母或数字。

4. 总结

Formily 提供了强大的表单验证功能,使得开发者可以轻松地定义和执行验证规则。通过使用 Formily,开发者可以大大简化表单的开发过程,提高表单的可维护性,支持多种表单控件,支持表单验证。希望本文对你有所帮助,如果你有任何问题或建议,欢迎在评论区留言讨论。


http://www.kler.cn/a/539684.html

相关文章:

  • DeepSeek神经网络:技术架构与实现原理探析
  • 了解网络层
  • Discourse 创建和配置用户自定义字段
  • html文件怎么转换成pdf文件,2025最新教程
  • 【Qt 常用控件】输入类控件1(QLineEdit和QTextEdit 输入框)
  • android的Compose 简介
  • C#中的非托管资源释放机制详解|Finalizer与Dispose模式
  • 《从入门到精通:蓝桥杯编程大赛知识点全攻略》(九)-连号区间数、递增三元组
  • git连接——问题
  • 第3章 使用 Vue 脚手架
  • 搜索插入位置:二分查找的巧妙应用
  • 【0401】Postgres内核 CREATE DATABASE database-name 源码实现 ①
  • 65【服务器攻击原理讲解】
  • 大模型赋能网络安全整体应用流程概述
  • c/c++蓝桥杯经典编程题100道(14)矩阵转置
  • 水上安全杂志水上安全杂志社水上安全编辑部2024年第24期目录
  • 51单片机俄罗斯方块计分函数
  • SpringBoot 01 简单介绍与应用
  • ZooKeeper 和 Dubbo 的关系:技术体系与实际应用
  • 如何在 Linux 上为 SSH 启用 MFA(Google Authenticator 方式)
  • C++ Primer sizeof运算符
  • 金字塔原理——阅读笔记
  • 微服务 day01 注册与发现 Nacos OpenFeign
  • Perl语言的云计算
  • idea启动报错# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x00007ffccf76e433
  • VueRouter 的路由匹配与组件渲染