💻 들어가며
과제 전형을 진행하면서 제작했던 회원가입과 로그인 페이지입니다.
tailwind css와 react-hook-form 를 사용해서 제작했습니다.
레이아웃이 어떤식으로 잡혀있는지를 위주로 포스팅한 글이고
이후에 react-hook-form을 어떻게 사용했나 다룰 예정입니다 😀
⚒️ 기능 구현
회원가입 페이지
로그인 페이지
📌 핵심 코드
<div className="flex flex-col items-center justify-center h-screen">
<div className="m-auto">
<h1 className="mb-2 text-lg font-medium">로그인</h1>
<form className="flex flex-col" onSubmit={handleSubmit(onSubmit)}>
<input
placeholder="이메일"
className="mb-1 p-1 border-2"
type={"email"}
{...register("email", { required: true, pattern: /^\S+@\S+$/i })}
/>
<input
placeholder="비밀번호"
className="mb-1 p-1 border-2"
type={"password"}
{...register("password", { required: true, minLength: 8 })}
/>
{errors && (errors.email || errors.password) && (
<small className="text-red-400">잘못된 로그인 정보입니다.</small>
)}
<input
disabled={loading}
className="w-80 py-2 mb-1 font-bold text-white bg-gray-400 rounded cursor-pointer"
type="submit"
/>
</form>
<small>
아이디가 없으신가요?
<Link href="/register">
<a className="ml-1 text-blue-500">회원가입</a>
</Link>
</small>
</div>
</div>
- flex, justify-content : 가운데 맞춤
- h-screen : 꽉 찬 화면으로 구현
- m(margin), p(padding) : 간격조절
회원가입도 로그인 페이지와 비슷한 구성으로 작성되어 생략했습니다.
💭 느낀점
예전 수풀 프로젝트에서는 커스텀 훅을 사용해서 일일히 에러처리를 해주느라 시간을 꽤 잡아먹었는데
react-hook-form 을 사용해보니 각 input 마다 에러처리를 간편하게 할 수 있다는 점이 좋았습니다.
그리고 tailwind를 사용하면 태그에다 바로 스타일을 설정할 수 있다는 점은 간편했지만
기존 css 키워드와 달라 공식문서를 계속해서 확인해야하는 점과
재사용성이 떨어져서 코드가 난잡해지는 점 때문에
기존에 사용하던 styled-components를 계속해서 사용할 것 같습니다.
🎯TODO
- 수풀 프로젝트 react-hook-form 리팩토링
'Devlog(개발회고)' 카테고리의 다른 글
[원티드 프리온보딩] 사전과제 TODO 코드 리뷰 후기 (0) | 2022.10.29 |
---|---|
[수플] 프로젝트 발표준비 (0) | 2022.10.08 |
[수풀] useEffect, 클린코드 (0) | 2022.10.06 |
[수풀] 버그 fix, 필터 구현 성공 - 4주차 멘토링 (0) | 2022.10.05 |