В предыдущих статьях мы рассмотрели различные аспекты React, такие как настройка среды разработки, работа с JSX и компонентами, обработка событий и побочных эффектов, а также маршрутизация. В этой статье мы углубимся в тему форм в React, создав формы и обработав отправку форм с помощью функциональных компонентов.
Функциональные компоненты — это способ определить компоненты React как функции JavaScript. Они просты, их легко понять и протестировать, и они занимают меньше места по сравнению с классовыми компонентами. В этой статье мы будем использовать функциональные компоненты для создания и отправки форм в React.
Создание форм
Создавать формы в React с помощью функциональных компонентов легко и просто. В следующем примере мы создадим простую форму, которая принимает имя пользователя и адрес электронной почты.
import React, { useState } from 'react'; const MyForm = () => { // Use the useState hook to define form data as state const [formData, setFormData] = useState({ name: '', email: '' }); // Function to handle form submission const handleSubmit = (event) => { event.preventDefault(); console.log(formData); } // Function to handle input changes const handleChange = (event) => { setFormData({ ...formData, [event.target.name]: event.target.value }); } return ( <form onSubmit={handleSubmit}> <label> Name: <input type="text" name="name" onChange={handleChange} value={formData.name} /> </label> <br /> <label> Email: <input type="email" name="email" onChange={handleChange} value={formData.email} /> </label> <br /> <button type="submit">Submit</button> </form> ); }
В этом примере мы сначала импортируем React и хук useState
из библиотеки React. Хук useState
позволяет нам определять и управлять состоянием функциональных компонентов. Мы используем его для определения переменной состояния formData
, которая содержит данные для нашей формы.
Функция handleSubmit
используется для обработки отправки формы. Он передается как реквизит onSubmit
элементу form
. Функция сначала предотвращает поведение формы по умолчанию, которое может привести к обновлению страницы. Затем он записывает данные формы в консоль.
Функция handleChange
используется для обработки изменений ввода. Он передается как реквизит onChange
элементам input
. Функция обновляет соответствующее свойство переменной состояния formData
новым входным значением.
Наконец, мы визуализируем форму с input
элементами для полей имени и электронной почты и кнопкой отправки. Свойство value
элементов input
устанавливается на соответствующее свойство переменной состояния formData
, что позволяет полям ввода отображать текущие данные и обновлять их, когда пользователь что-то вводит.
Стоит отметить, что вы можете использовать такие библиотеки, как formik
и redux-form
, для обработки форм, проверки ввода и обработки ошибок.
_beGREAT