Forms and User Input
Controlled and uncontrolled inputs, checkboxes, radios and selects, submitting with FormData, one state object for many fields, validation with ARIA, and form libraries.
Forms are where users talk back to your app: a search box, a login, a checkout, a settings page. In plain HTML the browser keeps what the user typed inside each field. In React you choose: let React state hold every value (a controlled input), or let the browser keep it and read it when you need it (an uncontrolled input). This phase teaches both, and when to pick each.
You'll handle every kind of field (text, textarea, checkbox, radio, select, number, file), submit forms properly with onSubmit, preventDefault and FormData, manage many fields with one state object and one change handler, and build validation that is friendly and accessible, with aria-invalid and aria-describedby.
Finally you'll see why libraries such as React Hook Form and Zod exist, how their main APIs look, and build a small version of them yourself. React 19 also lets a <form> call a function directly through its action prop; you'll get a first look here and the full story in Phase 19.
Practise this phase
Hands-on exercises: write the code, see your page live, and press Check to have it tested automatically.