Formily 如何进行表单验证

ops/2025/2/12 4:35:47/

在这里插入图片描述

🤍 前端开发工程师、技术日更博主、已过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.ppmy.cn/ops/157213.html

相关文章

如何在RTACAR中配置IP多播(IP Multicast)

一、什么是IP多播 IP多播&#xff08;IP Multicast&#xff09;是一种允许数据包从单一源地址发送到多个目标地址的技术&#xff0c;是一种高效的数据传输方式。 多播地址是专门用于多播通信的IP地址&#xff0c;范围从 224.0.0.0到239.255.255.255 与单播IP地址不同&#x…

Dubbo高级特性

高级特性 1.序列化2.地址缓存3.超时与重试超时重试 4.多版本5.负载均衡6.集群容错7.服务降级 1.序列化 生产者与消费者之间传输对象 2.地址缓存 注册中心挂了&#xff0c;服务是否可以正常访问&#xff1f; 可以&#xff0c;因为dubbo服务消费者在第一次调用时会将服务提供…

开源身份和访问管理方案之keycloak(一)快速入门

文章目录 什么是IAM什么是keycloakKeycloak 的功能 核心概念client管理 OpenID Connect 客户端 Client Scoperealm roleAssigning role mappings分配角色映射Using default roles使用默认角色Role scope mappings角色范围映射 UsersGroupssessionsEventsKeycloak Policy创建策略…

一口气入门前端——HTML5入门

HTML5 1.1 HTML 介绍 HTML&#xff08;超文本标记语言&#xff09;是一种用于 Web 开发的标记语言&#xff0c;主要用来格式化和显示网页内容。可以将其视为一种文本文件&#xff0c;浏览器能够读取该文本文件并显示其中的内容。HTML支持多种元素&#xff08;也称作标签&…

电脑远程控制vivo手机,切换按钮就能让vivo仅投屏、不受控制!

Linux系统在全球的市场份额并不高&#xff0c;继而很多便捷的软件都没有Linux的版本。如果想要用Linux远程控制安卓手机&#xff0c;找软件会比较麻烦&#xff0c;但是AirDroid网页版可以做到。 以vivo手机为例子&#xff0c;接下来讲解Linux系统电脑要远程控制安卓手机时&…

Windows图形界面(GUI)-QT-C/C++ - QT 文本编辑控件详解

公开视频 -> 链接点击跳转公开课程博客首页 -> ​​​链接点击跳转博客主页 目录 概述 1. QLineEdit 1.1 特点 1.2 属性 1.3 常用方法 1.4 拓展应用 2. QTextEdit 2.1 特点 2.2 属性 2.3 常用方法 2.4 拓展应用 3. QPlainTextEdit 3.1 特点 3.2 属性 3.3…

从零开始学Docker(一)-镜像列表访问不到问题

最近在安装docker时碰到centos的归档问题&#xff0c;错误信息如下&#xff0c;以下列出了可行的解决方案&#xff1a; 错误信息 已加载插件&#xff1a;fastestmirror, langpacks Loading mirror speeds from cached hostfile Could not retrieve mirrorlist http://mirrorli…

【C/C++】每日温度 [ 栈的应用 ] 蓝桥杯/ACM备赛

数据结构考点&#xff1a;栈 题目描述&#xff1a; 给定一个整数数组 temperatures &#xff0c;表示每天的温度&#xff0c;返回一个数组 answer &#xff0c;其中 answer[i] 是指对于第 i 天&#xff0c;下一个更高温度出现在几天后。如果气温在这之后都不会升高&#xff0…