길잃은곰
길을 잃어 떠도는 곰
길잃은곰
전체 방문자
오늘
어제
  • 분류 전체보기 (87)
    • Algorithm (6)
    • HTML, CSS (9)
    • Frontend (1)
    • SW공학 (1)
    • WEB (4)
    • Javascript (29)
    • Typescript (0)
    • React (8)
    • Computer Science (11)
    • NEWS (0)
    • TIL(WIL) (4)
    • ETC (5)

블로그 메뉴

  • ✨깃허브
  • 홈
  • 태그
  • 방명록

인기 글

태그

  • EM
  • %
  • ES6
  • VW
  • 자바스크립트
  • PX
  • Pixel
  • element
  • 코드트리
  • javascript2016
  • REM
  • VH
  • ES7
  • js2016
  • 연탄
  • JavaScript
  • 코테
  • ES8
  • root-element
  • Es5
hELLO · Designed By 정상우.
길잃은곰

길을 잃어 떠도는 곰

React

[ React ] React Hook Form 이란

2023. 1. 19. 14:13

React Hook Form이란?

React 에서 Form 의 validation 을 쉽게 할 수 있도록 도와주는 라이브러리입니다.
전체 폼이 리렌더링 되지 않으면서, 각각의 입력값 변화를 관찰할 수 있기에 성능도 빠르고 의존성도 적습니다.

설치

yarn add react-hook-form

을 통해 설치할 수 있습니다.

간단한 예제를 통해 사용법을 알아보겠습니다.

React-Hook-Form

import React from "react";
import { useForm } from "react-hook-form";

const App = () => {
  const { register, handleSubmit, errors } = useForm();
  const onSubmit = (data) => console.log(data);

  return (
    <form onSubmit={handleSubmit(onSubmit)}>
      <input name="firstName" ref={register({ required: true })} />
      {errors.firstName && <span>이 값은 비워놓을 수 없습니다</span>}

      <input name="lastName" ref={register({ required: true })} />
      {errors.lastName && <span>이 값은 비워놓을 수 없습니다</span>}

      <input type="submit" />
    </form>
  );
};

간단히 위와 같이 작성하면, 폼을 제출할 때, 입력값을 관찰하고, 입력값이 바뀌면, 바뀐 값을 알 수 있습니다.

Register

<input name="firstName" ref={register({ required: true })} />

register 는 입력값을 관찰하기 위해 사용합니다. 입력값이 바뀌면, register 가 관찰하고 있기 때문에, 바뀐 값을 알 수 있습니다.

handleSubmit

<form onSubmit={handleSubmit(onSubmit)}>

handleSubmit 은 폼을 제출할 때, 입력값을 검증하고, onSubmit 함수를 실행합니다.

errors

{
  errors.firstName && <span>이 값은 비워놓을 수 없습니다</span>;
}

errors 는 입력값이 유효하지 않을 때, 에러 메시지를 보여줍니다. 위의 예제에서는 값을 비워놓으면 에러 메시지가 나타납니다.

Reference
  • React Hook Form
  • React Hook Form 사용하기
저작자표시 비영리 동일조건 (새창열림)

'React' 카테고리의 다른 글

[ React ] Next.js  (0) 2023.01.20
[ React ] Portal 이란 무엇인가  (0) 2023.01.20
[ React ] useEffect 와 useLayoutEffect 의 차이점  (0) 2023.01.13
[ React ] state 를 직접 수정하지 않고 setState 를 사용하는 이유  (0) 2023.01.13
[ React ] Lazy Loading 과 Code Splitting  (0) 2023.01.13
    'React' 카테고리의 다른 글
    • [ React ] Next.js
    • [ React ] Portal 이란 무엇인가
    • [ React ] useEffect 와 useLayoutEffect 의 차이점
    • [ React ] state 를 직접 수정하지 않고 setState 를 사용하는 이유
    길잃은곰
    길잃은곰

    티스토리툴바