npm install react-hook-form
폼 상태 및 메서드를 설정한다.
기본적인 유효성 검사, 리셋, 제출 등을 관리한다.
const { register, handleSubmit, formState: { errors } } = useForm();
<input {...register("name", { required: true })} />
// name 필드를 등록하고, 필수 입력으로 설정한다.
const onSubmit = (data) => console.log(data);
// 폼이 제출될 때 호출되는 함수
<form onSubmit={handleSubmit(onSubmit)}>...</form>
// 폼 제출 시 데이터 검증을 수행하고, 검증이 통과하면 onSubmit 함수를 호출한다.
const name = watch("name");
if (name.length > 8) {
console.error("이름은 8자 이하이어야 합니다.");
}
// 이런 식으로 실시간 검증을 구현할 수 있다.
setValue("title", existingPost.title);
setValue("content", existingPost.content);
// 포스트를 수정할 때, 기존의 값들을 불러와서 수정할 필요가 있을 때 setValue를 사용한다.
reset();
const { isSubmitting, isValid, errors } = formState;
// isSubmitting은 폼이 제출 중인지 확인할 수 있어, 로딩 스피너를 표시하는데 유용하다.
// inVaild는 폼이 유효한지 확인하여 제출 버튼의 활성화를 제어할 수 있다.
// errors는 유효성 검사에서 발생한 오류를 확인하고, 사용자에게 오류 메시지를 보여줄 때 사용한다.