Page cover

Form 컴포넌트 구현하기 (+ shadcn/ui)

react-hook-form과 shandcn/ui를 사용해 form 컴포넌트 구현하기

로그인 페이지를 구현한다고 가정해보자.

구현해야 할 기능

  • 이메일, 패스워드 입력 👉🏻 input, form 컴포넌트로 구현, 유효성 검사

  • 로그인 버튼 👉🏻 입력한 이메일과 패스워드를 서버에 전달 후 결과값 렌더링

  • 회원가입 버튼 👉🏻 회원가입 페이지로 이동


React Hook Form - shadcn/ui

Form의 기본적인 구조는 다음과 같다.

  • Form

  • FormField

  • FormItem

  • FormLabel

  • FormControl

  • FormDescription

  • FormMessage

formSchema 만들기

useform을 이용해 form 정의하기

form 컴포넌트 작성하기

라우터 이동 핸들러 함수

  • 이메일 input에 값이 없다면 👉🏻 localhost:3000/register?email=&redirect_uri=undefined

  • 이메일 input에 값이 있다면 👉🏻 localhost:3000/register?email=bienprltd@gmail.com&redirect_uri=undefined

회원정보가 없거나, 일치하지 않는 경우

회원정보가 없는 경우

onSubmit 함수 안에서 확인할 수 있다. 회원정보가 없는 경우, 아래 조건문에 걸리게 된다.

shadcn/ui의 alertDialog 컴포넌트를 이용해 결과를 보여준다.

이메일, 패스워드가 일치하지 않는 경우

Last updated