-
[ReactJS] React Hook Form 사용하기JavaScript/React 2023. 1. 30. 17:41728x90반응형
React Hook Form 설치 & import하기
npm i react-hook-form
import { useForm } from "react-hook-form"
register 함수 사용하기
const {register} = useForm();
register는 form에 input을 등록(register)할 때 사용된다.
react-hook-form은 페이지에 어떤 input이 있는지 모르기 때문에 현재 form에 어떤 input이 어디에 있는지 등에 대한 정보를 알려준다.
<Input required {...register("username")} // 이런 너낌 placeholder="Username" />
원래 register의 내용은 name, onBlur, onChange, ref 이다.
register object의 property들을 추가하기 위해 '...' 연산자를 이용해 prop으로 넣는 것이다.
<Input required name="name" // onBlur={onBlur} // onChange={onChange} // placeholder="Username" />
원래는 이런 느낌
watch 함수 사용하기
watch를 이용해 등록(register)한 object(등록한 Input)에 접근할 수 있다.
const {register, watch} = useForm();
console.log(watch());
watch함수를 콘솔창에 띄워보면 입력(input)한 객체의 정보를 볼 수 있다.
handleSubmit 함수 사용하기
handleSubmit은 data를 검증(validate)해주는 함수이다.
기본적으로 event.preventDefault() 를 호출해주기 때문에 form을 사용할 때마다 일일이 호출해주지 않아도 된다.
const {register, handleSubmit} = useForm();
onSubmit 함수를 생성한다.
const onSubmit = () => { console.log("submitted.."); }
form에 onSubmit 속성으로 handleSubmit과 함께 onSubmit함수를 호출한다.
<ModalBody as="form" onSubmit={handleSubmit(onSubmit)}> //... 중략 </ModalBody>
이 프로젝트에서는 ChakraUI를 사용하고 있기 때문에 ModalBody를 Form으로 사용하고 있다.
onSubmit 이벤트를 위와 같이 설정해주게 되면 handleSubmit 함수가 onSubmit을 안고 실행하면서 유효성 검증(validation)과 preventDefault()까지 호출해준다.
Home
React hook for form validation without the hassle
react-hook-form.com
LIST'JavaScript > React' 카테고리의 다른 글
[React] 상태 관리 라이브러리 Recoil 이해하기 (0) 2023.03.27 [ReactJS] 리액트에서 Apollo Client로 전역 상태 관리하기 (0) 2023.02.01 [React] TanStack Query Devtools로 query정보 시각화하기 (0) 2023.01.28 [React] React에서 axios로 API 호출하기 (0) 2023.01.27 [React] React Query | TanStack Query (0) 2023.01.26