Усовершенствуйте свои формы с помощью React useForm Hook: подробное руководство

Привет, коллеги-разработчики! Вы устали писать повторяющийся код для обработки форм в ваших приложениях React? Ну, не волнуйтесь больше! В этом посте мы собираемся погрузиться в чудесный мир хука useForm в React, который произведет революцию в способах работы с формами. Так что хватайте инструменты для программирования и приступайте!

  1. Настройка useForm:
    Для начала вам необходимо установить необходимые зависимости. Откройте терминал и перейдите в каталог проекта React. Выполните следующую команду:
npm install react-hook-form
  1. Создание формы:
    После завершения установки вы можете импортировать хук useForm в свой компонент. Давайте создадим простую форму для иллюстрации:
import { useForm } from 'react-hook-form';
function MyForm() {
  const { register, handleSubmit } = useForm();
  const onSubmit = (data) => {
    console.log(data);
  };
  return (
    <form onSubmit={handleSubmit(onSubmit)}>
      <input {...register('firstName')} placeholder="First Name" />
      <input {...register('lastName')} placeholder="Last Name" />
      <button type="submit">Submit</button>
    </form>
  );
}
  1. Проверка формы.
    Хук useForm предоставляет мощные возможности проверки формы. Давайте добавим в нашу форму несколько правил проверки:
import { useForm } from 'react-hook-form';
function MyForm() {
  const { register, handleSubmit, formState: { errors } } = useForm();
  const onSubmit = (data) => {
    console.log(data);
  };
  return (
    <form onSubmit={handleSubmit(onSubmit)}>
      <input {...register('firstName', { required: true })} placeholder="First Name" />
      {errors.firstName && <span className="error">First name is required</span>}
      <input {...register('lastName', { required: true })} placeholder="Last Name" />
      {errors.lastName && <span className="error">Last name is required</span>}
      <button type="submit">Submit</button>
    </form>
  );
}
  1. Доступ к значениям формы.
    Вы можете легко получить доступ к значениям формы, используя хук useForm. Давайте посмотрим пример:
import { useForm } from 'react-hook-form';
function MyForm() {
  const { register, handleSubmit, formState: { errors }, watch } = useForm();
  const watchedFields = watch();
  const onSubmit = (data) => {
    console.log(data);
  };
  console.log(watchedFields);
  return (
    <form onSubmit={handleSubmit(onSubmit)}>
      {/* Form inputs */}
      <button type="submit">Submit</button>
    </form>
  );
}
  1. Сброс формы.
    Иногда вам может потребоваться вернуть форму в исходное состояние. Хук useForm предоставляет удобный метод для достижения этой цели:
import { useForm } from 'react-hook-form';
function MyForm() {
  const { register, handleSubmit, reset } = useForm();
  const onSubmit = (data) => {
    console.log(data);
    reset();
  };
  return (
    <form onSubmit={handleSubmit(onSubmit)}>
      {/* Form inputs */}
      <button type="submit">Submit</button>
    </form>
  );
}

И вот оно! Мы изучили возможности хука useForm в React для обработки форм. Вы узнали, как настроить перехватчик, создавать формы, осуществлять проверку формы, получать доступ к значениям формы и даже сбрасывать форму. Благодаря этим новым знаниям вы теперь можете оптимизировать процесс обработки форм и писать более эффективный и удобный в сопровождении код.

Так что попробуйте хук useForm в своем следующем проекте React. Приятного кодирования!