Form Обработка и Validation в Next.js

Создание форм и выполнение данных validation являются важными частями разработки веб-приложений. В этом разделе мы рассмотрим, как создавать формы и хранить данные validation в вашем Next.js приложении. Мы также углубимся в популярные form библиотеки, такие как react-hook-form и Formik для эффективного управления form состоянием и выполнением данных validation.

Использование react-hook-form для Form обработки

react-hook-form — это библиотека, которая упрощает управление form состоянием и передачу данных validation в вашем Next.js приложении. Ниже приведен пример того, как использовать react-hook-form для создания регистрации form:

import { useForm } from 'react-hook-form';  
  
function RegistrationForm() {  
  const { register, handleSubmit, errors } = useForm();  
  
  const onSubmit =(data) => {  
    console.log(data);  
  };  
  
  return( 
    <form onSubmit={handleSubmit(onSubmit)}>  
      <input  
        type="text"  
        name="username"  
        placeholder="Username"  
        ref={register({ required: true, minLength: 5 })}  
      />  
      {errors.username && <p>Username is required and must be at least 5 characters long</p>}  
  
      <input  
        type="email"  
        name="email"  
        placeholder="Email"  
        ref={register({ required: true, pattern: /^\S+@\S+$/i })}  
      />  
      {errors.email && <p>Valid email is required</p>}  
  
      <button type="submit">Register</button>  
    </form>  
 );  
}  
  
export default RegistrationForm;  

В приведенном выше примере мы используем react-hook-form для управления form состоянием и выполнения данных validation. Сообщение form отправляется, когда пользователь нажимает Register кнопку, и validation отображаются ошибки, если таковые имеются.

Использование Formik для Form обработки

Formik — мощная библиотека для управления form состоянием, данными validation и обработки взаимодействий, связанных с формами. Вот пример использования Formik в вашем Next.js приложении:

import { Formik, Form, Field, ErrorMessage } from 'formik';  
  
function ContactForm() {  
  const initialValues = {  
    name: '',  
    email: '',  
  };  
  
  const validate =(values) => {  
    const errors = {};  
  
    if(!values.name) {  
      errors.name = 'Name is required';  
    }  
  
    if(!values.email) {  
      errors.email = 'Email is required';  
    }  
  
    return errors;  
  };  
  
  const onSubmit =(values) => {  
    console.log(values);  
  };  
  
  return( 
    <Formik initialValues={initialValues} validate={validate} onSubmit={onSubmit}>  
      <Form>  
        <div>  
          <Field type="text" name="name" placeholder="Name" />  
          <ErrorMessage name="name" component="div" />  
        </div>  
        <div>  
          <Field type="email" name="email" placeholder="Email" />  
          <ErrorMessage name="email" component="div" />  
        </div>  
        <button type="submit">Submit</button>  
      </Form>  
    </Formik>  
 );  
}  
  
export default ContactForm;  

В приведенном выше примере мы используем Formik для управления form состоянием и выполнения данных validation. Validation ошибки отображаются в виде сообщений, если они происходят.

Заключение

В этом разделе вы познакомились с созданием форм и использованием данных validation в вашем Next.js приложении. Вы узнали, как использовать библиотеки react-hook-form и Formik для эффективного управления form состоянием и обработки данных validation. Это поможет вам создавать интерактивные формы, которые обеспечивают лучший пользовательский опыт и скорость реагирования.