-
Notifications
You must be signed in to change notification settings - Fork 44
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[황은지] week8 #318
The head ref may contain hidden characters: "part2-\uD669\uC740\uC9C0-week8"
[황은지] week8 #318
Conversation
1. App -> SharedPage로 옮겼던 state들 다시 App으로 옮김 2. Nav랑 Footer 부분을 SharedPage로 옮김
api.js에 폴더 별 링크 불러오는 코드 추가
저장된 링크가 없는 경우 -> (NoLink.js)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
잘해주셨습니다.
그러나 이제 api를 처리하는 함수가 많아진 만큼 요청 성공, 실패 체크 로직이 반복되고 있습니다.
이런 부분을 별도의 fetcher 함수로 분리하여 공통 로직을 하나의 함수에서 처리하도록 수정해보는건 어떨까요?
이렇게 되면 코드의 중복이 제거되고, 각각의 api 요청하는 함수의 가독성이 향상되며, 재사용성이 올라가고, 에러 처리를 공통된 fetcher에서 처리할 수 있어 에러 처리의 일관성이 향상될 수 있습니다.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
커스텀 훅을 별도의 파일로 분리해서 호출하도록 하는건 어떨까요?
App.js 파일이 내에 너무 많은 코드가 있는것 같습니다.
@@ -7,13 +7,14 @@ const SIZES = { | |||
}; | |||
|
|||
const GradientButton = styled.button` | |||
width: ${({ size }) => SIZES[size] ?? SIZES["medium"]}px; | |||
padding: 16px 20px; | |||
width: ${({ size }) => SIZES[size ?? "medium"]}px; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
해당 코드는 아래와 같이 수정될 수 있을 것으로 보여집니다.
구조 분해 할당을 사용할때 기본값을 사용할 수 있습니다.
width: ${({ size }) => SIZES[size ?? "medium"]}px; | |
width: ${({ size = "medium" }) => SIZES[size]}px; |
{isFolderPage ? <Icon width="34" height="34" top="15" img={starIcon} /> : null} | ||
{isFolderPage ? <Icon width="21" height="17" top="215" img={kebabIcon} /> : null} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
삼항 연산자를 이용해서 작성해주신 부분이 좋았습니다.
앞으로도 JSX 문법 내에서 삼항 연산자를 이용해주세요.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
잘 작성된 코드지만 한 파일에 유틸리티 함수 뿐 아니라 스타일 컴포넌트와 일반 컴포넌트가 모두 모여있어 가독성이 떨어지는것 같습니다.
유틸리티 함수는 따로 유틸리티 함수들만 따로 모아두시고 스타일 컴포넌트는 다른 파일에서 사용하셨던 것처럼 컴포넌트 하단에 사용하는 것 혹은 다른 파일로 분리해서 임포트 하는 방식으로 통일해주셨으면 좋겠습니다.
지금은 컴포넌트 상단과 하단을 오가는 것으로 보여집니다.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
컴포넌트 파일의 명칭과 export 되는 함수의 명칭을 통일하는 것이 일반적으로 권장 되는 관행으로 알고 있습니다.
파일 이름과 export 되는 컴포넌트 명칭이 달라 해당 파일 내에서 코드의 시작점이 눈에 들어오지 않습니다.
setLinkList({ data }); | ||
})(); | ||
}, [folderId]); | ||
if (!linkList.data) return; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
잘못된 방법은 아니나 리액트에서 컴포넌트 내에서 early return을 할때 return null;
을 사용하는 것이 더 선호되는 방식으로 알고 있습니다.
지금도 잘못된건 아닙니다!
이번에도 고생 하셨습니다!! |
요구사항
기본
심화
주요 변경사항
스크린샷
멘토에게