Frontend/React

[React Hook Form] React Hook Form 공부 - 2 [7/25 study]

동혁이 2024. 7. 25. 03:42

React Hook Form 공부 - 2

 

React-Hook-Form의 Devtool 설치하기

 

npm i -D @hookform/devtools
yarn add -D @hookform/devtools

 

적용법

useForm() 이 사용되는 곳에 아래와 같이 Devtool 컴포넌트를 삽입하면 됩니다.

import { useForm } from 'react-hook-form'
import { DevTool } from '@hookform/devtools'

let renderCount = 0

export default function MyForm() {
  const { register, control } = useForm()

  renderCount++
  return (
    <div className='w-full p-4'>
      <h1 className='mb-5 text-2xl'> Render count : {renderCount / 2}</h1>
      <form>
        <div className='w-1/3'>
          <label htmlFor='username'>Username</label>
          <input type='text' id='username' {...register('username')} />
          <label htmlFor='email'>E-mail</label>
          <input type='email' id='email' {...register('email')} />
          <label htmlFor='password'>Password</label>
          <input type='password' id='password' {...register('password')} />
          <button>Submit</button>
        </div>
      </form>
      <DevTool control={control} />        요기!!!!!!!!!!!!!!!!
      // control은 useForm의 control을 넘겨줘야 함 => 그래야 컨트롤 가능
    </div>
  )
}

 

브라우저에서 화면 맨 위에 작은 Devtool 표시를 누르면 실행되는데요. 

아래 그림과 같이 우리가 register 함수로 등록한 폼의 상태에 대해 여러 가지를 알려줍니다. 

그리고 위 코드에 보시면 renderCount라는 변수를 이용해서 리액트가 다시 렌더링 되는 숫자를 한번 표현해 봤습니다.