Что такое React Hook Form и для чего он используется
Что проверяют
Понимаете ли вы, за счёт чего библиотека быстрая, и знаете ли, когда она не подходит.
Как отвечать
Это библиотека для работы с формами. Главная её идея в том, что поля остаются неуправляемыми: значение живёт в самом элементе страницы, а библиотека держит на него ссылку.
Отсюда основное преимущество: ввод символа не вызывает перерисовку формы. В подходе с управляемыми полями каждое нажатие клавиши обновляет состояние и перерисовывает компонент со всеми полями. На форме из тридцати полей это заметно, особенно на слабых устройствах.
Как выглядит использование: хук создаёт форму, функция регистрации подключает поле, обёртка вокруг отправки собирает значения и запускает проверку, объект состояния даёт ошибки, признак отправки и признак изменённости.
Проверка данных задаётся либо правилами прямо при регистрации, либо целиком схемой через отдельный слой совместимости. Второй вариант обычно лучше: схема одна и та же используется и для проверки формы, и для вывода типов, и иногда на сервере.
Интеграция с библиотеками компонентов: готовые компоненты выпадающих списков и полей ввода обычно управляемые, поэтому для них есть специальная обёртка, которая берёт управление на себя. Это единственное место, где перерисовки возвращаются, и это нормально.
Сравнение с альтернативой на управляемых полях: там код проще и предсказуемее, но перерисовки на каждый символ заложены в саму модель.
Когда библиотека не нужна: форма из двух полей закрывается обычным состоянием без всяких зависимостей.
Полезно добавить про доступность: библиотека сама не расставляет связи между полем и сообщением об ошибке, это остаётся на вас.
Где спотыкаются
Оборачивают все поля в обёртку для управляемых компонентов и теряют преимущество.
Дублируют правила проверки на форме и в схеме.
Тянут библиотеку ради формы из двух полей.
Не связывают сообщение об ошибке с полем для доступности.