Controlled components: value={text} => setText(e.target.value)}. React контролирует значение поля.
Checkbox: checked={agree} Select: value={city} Несколько полей — один объект state или отдельные useState.
Валидация в обработчике submit перед отправкой на сервер.
const [email, setEmail] = useState('')
<input
value={email} => setEmail(e.target.value)}
/>function handleSubmit(e) {
e.preventDefault()
if (!email) return
sendForm({ email })
}Книга, игра и упражнения доступны без регистрации. Видеоуроки — после оплаты курса.