Конечная библиотека форм для реагирования, которая вам когда-либо понадобится
Всем привет, в этом уроке я покажу, как легко создавать формы с помощью пакета Createform, надеюсь, вы найдете эту статью полезной.
С библиотекой Createform создание форм и управление ими в React стало еще проще. Библиотека предоставляет простой и интуитивно понятный API для обработки отправки форм, проверки и многого другого.
В этом руководстве мы рассмотрим этапы создания и использования хука формы с библиотекой Createform. Мы также расскажем, как проверять поля формы с помощью библиотеки Yup и как отображать пользователю ошибки проверки.
Свяжитесь со мной в Твиттере https://twitter.com/juciano_barbosa
Монтаж
Чтобы установить Createform в свой проект, используйте npm или yarn:
npm install @createform/react //or yarn add @createform/react
Репозиторий: взгляните на [репозиторий GitHub](https://github.com/jucian0/createform)
Первым шагом в использовании Createform является создание хука формы. Это можно сделать, вызвав функцию createForm и передав объект со свойством initialValues. Свойство initialValues должно содержать объект с ключами и начальными значениями полей вашей формы.
Например, следующий код создает хук useLoginForm с полями электронной почты и пароля:
const useLoginForm = createForm({ initialValues: { email: '', password: '', }, });
Да, этот подход похож на zustand.
Использование хука формы в компоненте формы
После того, как вы создали хук формы, вы можете использовать его в своем компоненте формы. Хук предоставляет несколько функций, которые вы можете использовать для управления формой, включая handleSubmit, register, touched и error.
Функция регистрации должна использоваться для регистрации полей формы в форме. Он принимает имя поля в качестве аргумента и должен передаваться как реквизит ref элемента поля формы.
Например, следующий код создает форму входа, которая использует хук useLoginForm:
const LoginForm = () => { const { handleSubmit, register } = useLoginForm(); function onSubmit(values) { console.log(values); } return ( <form onSubmit={handleSubmit(onSubmit)}> <input type="email" {...register('email')} /> <input type="password" {...register('password')} /> <button type="submit">Submit</button> </form> ); };
Когда форма будет отправлена, будет вызвана функция onSubmit с объектом, содержащим значения полей электронной почты и пароля.
Проверка полей формы
Вы также можете использовать validationSchema для проверки значений полей формы перед отправкой формы.
const validationSchema = yup.object().shape({ email: yup.string().email().required(), password: yup.string().min(6).required(), }); const useLoginForm = createForm({ initialValues: { email: '', password: '', }, validationSchema, });
В этом примере мы используем библиотеку Yup для создания схемы проверки и передачи ее в функцию createForm. Он проверит поле электронной почты в соответствии с требованиями и с форматом электронной почты и полем пароля в соответствии с требованиями с минимум 6 символами.
В компоненте формы:
const LoginForm = () => { const { handleSubmit, register, errors, touched } = useLoginForm(); function onSubmit(values) { console.log(values); } return ( <form onSubmit={handleSubmit(onSubmit)}> <input type="email" {...register('email')} /> {touched.email && <p>{errors.email}</p>} <input type="password" {...register('password')} /> {touched.password && <p>{errors.password}</p>} <button type="submit">Submit</button> </form> ); };
Вы также можете использовать Zod вместо Yup.
Заключение
В библиотеке Createform есть много других ресурсов, и вы можете найти их в документации, также библиотека предоставляет простой и интуитивно понятный способ создания и управления формами в React. Он позволяет легко регистрировать поля форм, обрабатывать отправку форм и проверять значения полей форм. Используя функцию validationSchema и такие библиотеки, как Yup или Zod, вы можете легко реализовать проверку своих форм и отображать ошибки для пользователя. С библиотекой Createform создание и управление формами в React становится проще простого. Вы также можете настроить форму, добавив дополнительные поля формы или настраиваемую логику проверки.