: 간편한 리액트 폼 관리 라이브러리
react hook form은 기본적으로 비제어 컴포넌트 방식으로 구현되어 있어, 렌더링 이슈를 해결한다. 비제어 컴포넌트 방식의 장점은 그대로 살리면서, 제어 컴포넌트에서만 다룰 수 있는 실시간 유효성 검사, 실시간 동기화 등의 API를 제공하여 실시간 유효성 검사 및 동기화를 가능하게 해준다.
<aside> 💡 제어 컴포넌트 vs 비제어 컴포넌트?
input, textarea, select와 같은 폼 엘리먼트는 일반적으로 사용자의 입력을 기반으로 자신의 state를 관리하고 업데이트한다.
<aside> 💡 React Hook Form은 어떻게 이러한 문제들을 해결했을까?
1. React Hook Form은 어떻게 렌더링 이슈를 해결했을까?
2. React Hook Form은 어떻게 동기화 이슈는 어떻게 해결했을까?
</aside>
React Hook Form에서 자체적으로 제공하는 유틸로 대부분의 유틸 함수를 대체할 수 있다. 예를 들어 reset, setValue, dirty 등이 있다.
class-validator를 이용해서, 각각의 필드에 대해 손쉽게 유효성 검사할 수 있다.
export default class ProjectModel {
@Length(1, 100, { message: ERROR_MESSAGE_PROJECT_NAME })
projectName = '';
...
}
백엔드에서도 이를 사용하여 백엔드와 프론트엔드 사이 유효성 검사 로직 싱크를 맞출 수 있다.
React Hook Form은 어느정도 사용하는 방법이 정해져 있기 때문에, 코드의 일관성 확보를 위한 팀원 간의 커뮤니케이션 비용을 최소화할 수 있다.