일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- c언어
- 자바
- Kafka
- MySQL
- Galera Cluster
- spring webflux
- 자료구조
- 알고리즘
- Data Structure
- mongoDB
- Spring
- OS
- 네트워크
- C
- JPA
- design pattern
- 디자인 패턴
- 백준
- JavaScript
- MSA
- 운영체제
- IT
- redis
- 컴퓨터구조
- Proxy
- Algorithm
- Java
- 파이썬
- Heap
- react
Archives
- Today
- Total
시냅스
React Hook Form 사용법 본문
React Hook Form : 공식 문서
react hook form 은 form 을 제어할 때에 쓰이면 효과적인 라이브러리이다.
사용하면서의 개인적인 소감은 ref나 객체로 만들어야 하는 후처리가 줄어들어 굉장히 좋은 경험을 했다.
유효성 검사나, onChange 시의 렌더링 횟수도 줄어 성능 측면에서 효과적이라고... 공식문서는 이야기 한다.
또한 TS도 기본적으로 지원한다고 한다
사용법
npm install react-hook-form
yarn add react-hook-form
import React from "react";
import { useForm } from "react-hook-form";
export default function App() {
const { register, handleSubmit } = useForm();
const onSubmit = data => console.log(data);
return (
<form onSubmit={handleSubmit(onSubmit)}>
<input {...register("firstName")} />
<select {...register("gender")}>
<option value="female">female</option>
<option value="male">male</option>
<option value="other">other</option>
</select>
<input type="submit" />
</form>
);
}
위 예시에서는 firstName과 gender를 onSubmit 에서 데이터로 확인할 수 있다.
import React from "react";
import { useForm } from "react-hook-form";
export default function App() {
const { register, handleSubmit } = useForm();
const onSubmit = data => console.log(data);
return (
<form onSubmit={handleSubmit(onSubmit)}>
<input {...register("firstName", { required: true, maxLength: 20 })} />
<input {...register("lastName", { pattern: /^[A-Za-z]+$/i })} />
<input type="number" {...register("age", { min: 18, max: 99 })} />
<input type="submit" />
</form>
);
}
위 예시에서는 유효성 검사에 대해 확인할 수 있다.
import React from "react";
import { useForm } from "react-hook-form";
export default function App() {
const { register, formState: { errors }, handleSubmit } = useForm();
return (
<form onSubmit={handleSubmit(onSubmit)}>
<input {...register("firstName", { required: true })} />
{errors.firstName?.type === 'required' && "First name is required"}
<input {...register("lastName", { required: true })} />
{errors.lastName && "Last name is required"}
<input type="submit" />
</form>
);
}
유효성에 통과하지 못하면 위처럼 밸리데이션 관리도 해줄 수 있다.
'ReactJS' 카테고리의 다른 글
react에서 Zustand를 사용하는 방법 (0) | 2021.12.03 |
---|---|
React-Query 사용법 (0) | 2021.12.03 |
React에서 dotenv를 사용하는 방법 (0) | 2021.11.27 |
React connected-react-router, react-router-dom, history 버전 충돌 (0) | 2021.11.23 |
TIL : React { Hooks } (0) | 2021.11.20 |
Comments