Какие библиотеки для работы с формами в React существуют
Что проверяют
Не список названий, а то, как вы выбираете инструмент и что у вас реально болело в формах. Вопрос поведенческий, поэтому дальше пойдут ваши примеры: какая форма была самой сложной, почему взяли именно эту библиотеку и обо что споткнулись.
Как отвечать
Обзор дайте коротко, основную часть стройте на своём проекте.
- React Hook Form: держит поля неконтролируемыми через
ref, поэтому ввод не перерисовывает всю форму. Схемная валидация подключается резолверами из@hookform/resolversк zod, yup или valibot. Сегодня это выбор по умолчанию для крупных форм; - Formik: исторический стандарт, развивается вяло, хранит значения в контексте и перерисовывает форму на каждый символ. Для новой формы смысла мало, для поддержки старого кода знать нужно;
- TanStack Form: строгая типизация и один API поверх нескольких фреймворков, стабильная версия с 2025 года. Разумный кандидат, если экосистема TanStack в проекте уже прижилась;
- встроенное в React 19:
<form action={...}>,useActionState,useFormStatusиuseOptimisticзакрывают простую форму с серверным действием вообще без библиотеки; - формы UI-китов: у antd и подобных наборов свой механизм форм, и вторая библиотека поверх него обычно только мешает.
Дальше проговорите критерии выбора: размер формы и число зависимых полей, нужна ли та же схема валидации на сервере, как подключаются кастомные компоненты, доступны ли сообщения об ошибках для скринридера. И приведите свой случай с цифрами: форма на сорок полей, замер задержки ввода до переезда и после.
Где спотыкаются
Перечисляют библиотеки без единого своего примера. На поведенческом вопросе это читается как отсутствие практики: рассказать про Formik и React Hook Form можно и по документации.
Оборачивают контролируемый компонент из UI-кита в register вместо Controller и получают поле, которое не отдаёт значение. Это первая же проблема при интеграции с готовым набором компонентов.
Валидируют только на клиенте, потому что «библиотека же проверяет». Схема обязана отрабатывать и на сервере, клиентская проверка это удобство пользователя, а не защита данных.