codestates / codestates/Lumiere

[Dev-Log] 김정훈 2021-12-04

Open
#209 0 comments 0 reactions 1 assignee Claimed by @linehyang View on GitHub
dev-log
Dominant language
TypeScript
Stars
7
Forks
4
PR merge metrics
No merged PRs in 30d

Description

> ### 오늘은 어떻게 프로젝트에 기여했나요?
> 회원가입 페이지 구현
>
> ### 오늘의 프로젝트에서 힘든 점은 무엇인가요?
>
> - 항목별로 적어주세요.
> - 회원가입 진행을 하게되면 State관리를 이름, 메일주소, 비밀번호, 비밀번호 확인 하는 상태
그리고 이 4가지의 validate를 확인하는 상태 4개, 또 validate가 다 충족되었는지 전체를 관리하는 상태 1개
총 9개를 동시에 상태관리 해야하는 상황이 오는데, 이전 first project에서는 이모든것을 usestate로 처리하여 엄청나게 복잡하고
유지보수도 어려운 코드였지만, 이번에는 useReducer를 사용해서 코드의 복잡성을 최대한 줄이면서 회원가입 페이지를 구현하였다.
- eslint와 타입스크립트가 동시에 타입에러와 규칙에러를 잡아 내느라.. 정신을 못차리고 있다. (삼항연산자의 중첩을 막는 등...)

```js
// 코드를 첨부해도 좋습니다.
//예시로 이름만 관리하는 로직을 올린다.
switch (action.type) {
case 'NAME': {
if (action.name === '') {
return {
...state,
nameErrMessage: '필수 입력사항입니다',
nameValidata: false,
};
}
if (!nameValidate(action.name)) {
return {
...state,
nameErrMessage: '두글자 이상인 한글과 영어로만 입력해주세요',
nameValidata: false,
};
}
return { ...state, nameErrMessage: '', nameValidata: true };
}
> ```
>
> ### 내일은 프로젝트에 기여하기 위해 무엇을 해야 하나요?
>
> - [ ] 회원가입에 필요한 모달 2개 제작(개인정보 동의, 약관 동의)
- [ ] 개인정보 동의, 약관동의를 누르지 않으면 회원가입이 안되게끔 하는것
- [ ] 소셜 로그인

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.