Логотип
Меню
Блог

Создание формы: React Hook Form

13 ноября 2023г

React Hook Form - это библиотека для управления состоянием и валидацией форм в React. Она предоставляет простой и гибкий способ работы с формами, используя хуки.

Основные особенности React Hook Form включают:
  • Интеграция с UI-библиотеками: React Hook Form легко интегрируется с различными библиотеками пользовательского интерфейса.
  • Гибкость: Библиотека предоставляет гибкий API, который позволяет легко управлять состоянием формы и валидацией.
  • Производительность: React Hook Form оптимизирована для быстрой загрузки и монтирования компонентов.
Ключевые методы и свойства, предоставляемые React Hook Form: register, handleSubmit, formState, errors и reset.
  • "register": Используется для регистрации полей формы, позволяя React Hook Form отслеживать их значения и применять правила валидации.
  • "handleSubmit": Вызывается при отправке формы. Она принимает функцию обратного вызова, которая будет выполнена после успешной валидации формы.
  • "formState": Предоставляет информацию о состоянии формы, включая ошибки (ошибки валидации для каждого поля), isValid (флаг, указывающий, является ли форма валидной) и т.д.
  • "errors" (ошибки): Содержит ошибки валидации для каждого поля. Если поле не прошло валидацию, то соответствующая ошибка будет доступна в этом свойстве.
  • "reset": Используется для возврата значений полей и состояния формы к исходным значениям.

В этом примере я использую React Hook Form для управления состоянием и валидацией формы в React.

В начале импортирую необходимые модули и компоненты.
  • UseForm - это хук, предоставляемый библиотекой React Hook Form. Он используется для управления состоянием и валидацией формы в React.
  • UseState используется для управления состоянием переменной isSubmitted, которая отвечает за отображение сообщения об успешной отправке формы.

Далее регистрируем поля , это позволяет сделать поля и их значения доступными для проверки и отправки формы.

Определяем правила валидации для полей формы, используя свойство register и передавая объект с правилами валидации. Например, проверяем, что поле "email" является обязательным и соответствует шаблону электронной почты. Если поле не проходит валидацию, отображаем сообщение об ошибке. Так же с остальными полями, которые проходят свою валидацию.

Определяем функцию onSubmit, которая вызывается при отправке формы. Внутри этой функции устанавливаем состояние isSubmitted в true, сбрасываем форму с помощью reset. Если форма успешно отправлена, отображаем сообщение об успешной отправке.

Это были самые основные действия в создании формы, добавим к этому стили для полей с успешной валидацией и с ошибкой, для визуального эффекта.

Вот и все, форма обратной связи готова. Не претендую на оригинальность, так как данная библиотека достаточно известная и часто используемая. Это мой первый опыт работы с React Hook Form, и результатом я довольна.