본문 바로가기
React

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

by 리슨업 2024. 3. 1.

 

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()를 통해 이전 데이터를 유지시키는 것이 더 바람직 할 것이다. 

 

 

 

'React' 카테고리의 다른 글

[React] Css in js / Styled.component  (0) 2024.02.03
[React-Query 사용하기]  (1) 2024.01.30
[React-datePicker] 시작날짜, 종료날짜 컴포넌트 만들기 (1)  (1) 2024.01.27
React - Router [ action , loader ]  (2) 2024.01.09
React - useMemo  (1) 2023.12.09