Локальный state (useState / useReducer) для форм — полный контроль: value и onChange у каждого поля. Form libraries (React Hook Form, Formik) добавляют регистрацию полей, валидацию, ошибки, submit lifecycle и часто снижают число ре-рендеров.
Плюсы: прозрачно, легко связать с другим UI. Минусы: на большой форме каждый кейсстрок может рендерить всё дерево; валидацию пишете сами.
Библиотеки
React Hook Form тяготеет к uncontrolled + ref (меньше ре-рендеров), с API register, handleSubmit, schema (Zod/Yup). Formik ближе к controlled-модели. «Controlled form library» на практике часто = библиотека, которая управляет значениями/метаданными формы за вас — даже если внутри refs.
Когда что
Сценарий
Выбор
2–3 поля
local state
15+ полей, маски, schema
RHF/Formik
Сильная связь полей с UI
controlled local
Производительность ввода
RHF / изолированные полей
На интервью
Не сводите к «библиотека лучше». Объясните trade-off: контроль и простота vs DX валидации и perf. Controlled означает, что React state — источник истины для value; библиотека может абстрагировать это или обойти через DOM.
Чем controlled form libraries отличаются от локального state? · Sobeso