React

[React-Hook-Form] watch ,reset ,setValue

리슨업 2024. 3. 1. 21:52

 

useHookForm은 useQuery와 더불어 가장 만족한 라이브러리로 뇌의 재사용을 위해 기재해놔야겠다..

 

#SetValue

setValue(fieldName, value, options);

 

setValue의 매개변수는 'fieldName' 타겟필드명 , 변경할 값 , "option shouldValue : true" 로 옵션 값을 설정하여 유효성 검사도 추가로 가능하며, 폼의 유효성 상태를 즉시 반영 하고 싶을 때 사용한다. 

 

 

#reset

reset(); // 전체 리셋
reset({'fieldName' : '변경할 값 '}) // 특정 필드 값 초기화

 

폼 제출하거나 값을 특정 값으로 초기화 시킬 때 주로 사용한다. 

 

 

#Watch

const fieldValue = watch(fieldName);
const allValues = watch();

 

watch의 핵심 키워드는 "관찰" 이다.

watch는 현재 Value값을 "관찰"하며 해당 value가 변경되면 포함된 컴포넌트들에 대해 랜더링 유발한다.

 

defaultValue : {
    userName : '',
    userICon : '',
    userPassword : '',
    userContents : ''
    ....
}

 

유의점은 allValues 같이 watch() 전체 value를 관찰하게 된다면 예로 위의 userName만 변경되게 되어도 userIcon ,userPassword 등 각 name을 가진 Input 컴포넌트가 죄다 재 랜더링 되게 된다. 

 

불필요한 랜더링이 발생하여 성능 문제로 이어질 수 있기 때문에 주의가 필요하다.

개인적으로는 이땐 watch보다 getValue()를 통해 이전 데이터를 유지시키는 것이 더 바람직 할 것이다.