react 表单

Web前端培训:三个最佳React表单库

在Web前端开发中,表单是必不可少的一部分,随着React框架的流行,越来越多的开发者开始使用React来构建表单应用,本文将介绍三个最佳的React表单库,帮助你快速搭建高效的表单应用。

react 表单

1、Formik

Formik是一个基于React的状态驱动表单库,它提供了一种简单、直观的方式来处理表单验证和提交,Formik的核心组件是<Formik><Form><Field>,通过组合这些组件,你可以轻松地实现复杂的表单功能。

安装Formik:

react 表单

npm install formik

使用Formik:

import React from 'react';
import { Formik, Form, Field } from 'formik';
const App = () => (
  <div>
    <h1>React Formik 示例</h1>
    <Formik initialValues={{ name: '', email: '' }}>
      {({ handleSubmit, values }) => (
        <form onSubmit={handleSubmit}>
          <label htmlFor="name">姓名:</label>
          <Field name="name" type="text" />
          <br />
          <label htmlFor="email">邮箱:</label>
          <Field name="email" type="email" />
          <br />
          <button type="submit">提交</button>
        </form>
      )}
    </Formik>
  </div>
);
export default App;

2、react-hook-form

react-hook-form是一个基于React的状态驱动表单库,它提供了一系列预定义的表单组件,以及强大的验证和错误处理功能,react-hook-form的核心组件是useForm,通过调用这个Hook,你可以轻松地创建和管理表单状态。

react 表单

安装react-hook-form:

npm install react-hook-form

使用react-hook-form:

import React from 'react';
import { useForm } from 'react-hook-form';
import { yupResolver } from '@hookform/resolvers/yup'; // 需要引入yup库进行表单验证配置
import * as yup from 'yup'; // 需要引入yup库进行表单验证配置
import { Button, Form, Input } from 'antd'; // 需要引入Ant Design库的UI组件库
const schema = yup.object().shape({
  name: yup.string().required('请输入姓名'),
  email: yup.string().email('请输入有效的邮箱地址').required('请输入邮箱'),
}); // 定义表单验证规则
const App = () => {
  const { register, handleSubmit, formState: { errors } } = useForm({
    resolver: yupResolver(schema), // 将验证规则与表单状态关联起来
  }); // register函数用于生成表单控件的实例,handleSubmit用于处理表单提交事件,errors用于获取表单验证错误信息。
  return (
    <div>
      <h1>React Hook Form 示例</h1>
      <Form form={register(schema)} onFinish={handleSubmit(data => console.log(data))}>
        <Form.Item name="name" label="姓名" rules={[{ required: true, message: '请输入姓名' }]}>
          <Input />
        </Form.Item>
        <Form.Item name="email" label="邮箱" rules={[{ type: 'email', message: '请输入有效的邮箱地址', required: true }]}>
          <Input />
        </Form.Item>
        <Form.Item>
          <Button type="primary" htmlType="submit">提交</Button>{' '}
        </Form.Item>{' '}
      </Form>{' '}
      {errors && Object.keys(errors).map((key) => ({ key, ...errors[key] }))} // 如果有错误信息,则展示出来,每个错误对象包含一个唯一的键(fieldName)和相应的错误信息。{' '}
    </div>
  ); // 将生成的表单控件渲染到页面上,如果有错误信息,则以列表的形式展示出来。{' '}

原创文章,作者:K-seo,如若转载,请注明出处:https://www.kdun.cn/ask/131439.html

Like (0)
Donate 微信扫一扫 微信扫一扫
K-seo的头像K-seoSEO优化员
Previous 2023-12-15 21:39
Next 2023-12-15 21:40

相关推荐

  • 前端技术react

    Web前端培训:React最佳实践React是一个用于构建用户界面的JavaScript库,由Facebook开发并维护,它采用组件化的方式来构建复杂的UI,使得开发者能够更加高效地进行开发和维护,本文将介绍一些React的最佳实践,帮助你更好地掌握这个强大的前端框架。1、使用函数式组件在React中,我们推荐使用函数式组件而不是类组……

    2023-12-16
    0129
  • html怎么做会员注册表单

    在网页设计中,会员注册表单是一个非常重要的元素,它允许用户输入他们的个人信息,以便网站可以创建一个新的账户,HTML是一种用于创建网页的标准标记语言,它可以用于创建各种类型的表单,包括会员注册表单。以下是如何使用HTML创建一个简单的会员注册表单的步骤:1、创建一个HTML文件:你需要创建一个HTML文件,你可以使用任何文本编辑器来创……

    2024-01-05
    0186
  • html表单间距怎么调整

    HTML表单间距的设置主要涉及到CSS样式的应用,在HTML中,我们可以通过内联样式、内部样式表和外部样式表来设置CSS样式,在这里,我们将详细介绍如何使用内联样式和内部样式表来设置HTML表单的间距。1、使用内联样式设置表单间距内联样式是直接在HTML元素中使用&quot;style&quot;属性来定义CSS样式,……

    2024-03-08
    0304
  • html表单框架

    朋友们,你们知道html表单框的大小这个问题吗?如果不了解该问题的话,小编将详细为你解答,希望对你有所帮助!如何调整html表格中文本框的大小?首先用sublime text2新建一个测试用的html页面。我这里就叫test.html 这个时候在网页中添加以个label标签和一个input框。预览一下效果,我们可以知道默认的宽度是10 这里我们通过设置size的属性修改一下宽度。

    2023-12-02
    0129
  • react创建项目启动报错如何解决

    React创建项目启动报错如何解决在React项目创建过程中,可能会遇到各种报错问题,本文将详细介绍如何解决这些报错,并在最后提供两个相关问题与解答的栏目,以帮助读者更好地理解和解决这些问题。环境配置问题1、安装Node.jsReact项目需要Node.js环境,因此首先需要安装Node.js,请访问Node.js官网(https:/……

    2023-12-23
    0144
  • html中form标签的属性

    嗨,朋友们好!今天给各位分享的是关于html中form标签的属性的详细解答内容,本文将提供全面的知识点,希望能够帮到你!Html页面代码中,为什么要使用表单标签,使用该标签有什么意义?htmlform表单标签使用在一个网页中数据提交标签,比如我们留言板、评论等可以填写数据,提交处理地方都需要表单标签。而form表单标签内放输入框input、单选、多选、select下拉列表菜单与跳转菜单、提交按钮等标签元素内容。

    2023-11-28
    0123

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

免备案 高防CDN 无视CC/DDOS攻击 限时秒杀,10元即可体验  (专业解决各类攻击)>>点击进入