카테고리 없음

[React] useForm 사용 - 등록/유효성

hee-ya07 2025. 2. 28. 15:28

0. useForm 사용 - 등록/유효성

:: register(), control에는 유효성 검증을 위한 기준 파라미터가 있음

:: 해당 객체 ref에 태그되는 "name"과 이를 같이 전달하여 등록 및 유효성 검증

0.1 Vaildation 유효성 종류 - 대략

Validation 유효성 종류 내용
- required 필수 입력 여부
- min / max 최소 / 최대 값 설정
- minLength / maxLength 최소 / 최대 문자 길이 설정
- pattern 정규픽 패턴에 맞는지 검사
- validate 사용자 정의 유효성 검사 함수

 

더 많은 vaildation

 

register

Performant, flexible and extensible forms with easy-to-use validation.

react-hook-form.com


1. Validation 유효성 규칙 등록 방법 

  • Validation 유효성 규칙을 등록하는 2가지 방법이 존재
    방법 1) Validation 기준만 정의
    방법 2) Validation 기준 + 기준 위배 시 에러 Message 함께 정의

1.1 register() 사용 시, 유효성 등록

// 1) Validation 기준만 정의 = 위 예시 코드를 보면 true 통해 특정 유효성에 대해 활성화
<input
  {...register("username", {
    required: true,
  })}
/>
// 2) Validation 기준 + 에러 Message 함께 정의 = 위 예시 코드를 보면 value 와 message 함께 정의
<input
  {...register("username", {
    required: { value: true, message: "이메일을 입력해주세요" },
  })}
/>

1.2 Control에서 유효성 등록

1. useController 사용 시,

const name = "username"
const { handleSubmit, control } = useForm()
const { field } = useController({
  name,
  control,
//rules: { required: true }, 방법 1
  rules: { required: { value: true, message: "필수값임" } }, // 방법2
});

return (
	<input
	  id="username"
	  value={field.value}
	  name={field.name}
	  onChange={field.onChange}
	  onBlur={field.onBlur}
	  ref={field.ref}
	/>
)

2. <Controller /> 사용 시,

<Controller
  control={control}
  name={name}
//rules={{ required: true }} 방법 1
  rules={{ required: { value: true, message: "필수값임" } }} // 방법 2
  render={({ field: { value, ref, onChange, onBlur, name } }) => (
    <ExternalComponent
      onChange={onChange}
      onBlur={onBlur}
      value={value}
    />
  )}
/>

 


참고

ASAC 수업자료