-
Notifications
You must be signed in to change notification settings - Fork 0
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
10조 과제 제출 (이은비, 김하은, 황인승) #6
base: main
Are you sure you want to change the base?
Conversation
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.
수고하셨습니다 코멘트 남겨드렸습니다
}, [monthlyData]) | ||
|
||
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.
React.Fragment를 사용하는게 좋아요~
background-color: var(--color-bg); | ||
` | ||
|
||
const Container = styled.div` |
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.
section 같은 시멘틱 태그를 사용하면 좋을거 같아요
closeModal: () => void | ||
} | ||
|
||
export const Modal = ({ children, closeModal }: ModalProps) => { |
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.
React.PropsWithChildren을 사용하는걸 추천드려요
export const Home = () => { | ||
const initialGoal = useSavedGoal() | ||
|
||
const [showModal, setShowModal] = useState(false) |
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.
컴포넌트 성능 최적화를 위해 useMemo를 사용하는게 좋아요
} | ||
|
||
// spinner 계산용 함수 | ||
const updateProgress = (latestTotalAmount: number) => { |
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.
이런 함수는 utill로 빼서 재활용하는게 더 좋지 않을까요?
if (start && end) setIsOpen(false) | ||
} | ||
|
||
const handleTabChange = (tab: string) => { |
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.
이벤트 핸들러 함수는 useCallback을 활용하면 성능 최적화에 좋아요
|
||
export const SearchResultItem = React.memo(({ data }: SearchResultItemProps) => { | ||
return ( | ||
<Wrapper key={data.date}> |
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.
li태그를 wrapper로 명명한 부문이 조금 어색한것 같아요 좀더 용도가 분명한 컴포넌트 명을 고민해보시면 좋을거 같아요
|
||
export const App = () => { | ||
return ( | ||
<Routes> |
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.
create-browser-router를 사용하는게 성능면에서 좋아요
https://reactrouter.com/en/main/routers/create-browser-router
|
||
export const HomePage = () => { | ||
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.
자식 컴포넌트가 복수개가 아닌 단일인 경우 만 리턴해주는게 더 낫지 않을까요?
|
||
export const useStore = create<IStore>(set => ({ | ||
expensesData: [], | ||
setExpensesData: (expenses: Calendar[][]) => { |
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.
loading 관련한 프로퍼티도 추가해서 관리하면 useState도 따로 로딩 상태 관리 안해도 되고 편리할거 같아요!
똑플
🔗 배포주소
똑플
📄 프로젝트 소개
가계부 API를 이용하여 소비 기록과 소비 습관을 기를 수 있는 가계부 만들기
똑플 : 똑똑한 소비 플랜
🗓 프로젝트 기간
2023.07.05 ~ 2023.07.23
📌 프로젝트 기능
로그인 페이지
메인 페이지
월간 페이지
등록 페이지
주간 페이지
통계 페이지
검색 페이지
⚒️ 기술 스택
👩🏻💻🧑🏻💻 개발팀 소개
Github 관리,
통계 페이지,
검색 페이지
캘린더 구현,
소비 등록 페이지
회원가입,
메인 페이지,
주간 페이지
📂 폴더구조