Obsługa formularzy w React polega na zarządzaniu stanem formularza i jego walidacją. Można to zrobić przy użyciu komponentów kontrolowanych lub niekontrolowanych. Komponenty kontrolowane są bardziej popularne, ponieważ umożliwiają pełną kontrolę nad danymi formularza.
Przykład komponentu kontrolowanego:
import React, { useState } from 'react'; function MyForm() { const [values, setValues] = useState({ name: '', email: '' }); const handleChange = (e) => { const { name, value } = e.target; setValues({ ...values, [name]: value }); }; const handleSubmit = (e) => { e.preventDefault(); // Walidacja i wysyłanie danych formularza console.log(values); }; return ( <form onSubmit={handleSubmit}> <label> Name: <input type="text" name="name" value={values.name} onChange={handleChange} /> </label> <label> Email: <input type="email" name="email" value={values.email} onChange={handleChange} /> </label> <button type="submit">Submit</button> </form> ); }
Przykład komponentu niekontrolowanego:
import React, { useRef } from 'react'; function MyForm() { const nameRef = useRef(null); const emailRef = useRef(null); const handleSubmit = (e) => { e.preventDefault(); console.log({ name: nameRef.current.value, email: emailRef.current.value }); }; return ( <form onSubmit={handleSubmit}> <label> Name: <input type="text" ref={nameRef} /> </label> <label> Email: <input type="email" ref={emailRef} /> </label> <button type="submit">Submit</button> </form> ); }
Obsługa formularzy w React pozwala na dynamiczne zarządzanie danymi użytkownika i ich walidację przed wysłaniem do serwera.