Skip to content
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

이유섭 [sprint5] #254

Conversation

charie95
Copy link
Collaborator

@charie95 charie95 commented Dec 5, 2024

요구사항

기본

  • 중고마켓 페이지 주소는 “/items” 입니다.

  • 페이지 주소가 “/items” 일때 상단네비게이션바의 '중고마켓' 버튼의 색상은 “3692FF”입니다.

  • 상단 네비게이션 바는 이전 미션에서 구현한 랜딩 페이지와 동일한 스타일로 만들어 주세요.

  • 상품 데이터 정보는 https://panda-market-api.vercel.app/docs/#/ 에 명세된 GET 메소드 “/products” 를 사용해주세요.

  • '상품 등록하기' 버튼을 누르면 “/additem” 로 이동합니다. ( 빈 페이지 )

  • 전체 상품에서 드롭 다운으로 “최신 순” 또는 “좋아요 순”을 선택해서 정렬을 할 수 있습니다.

  • 중고마켓 반응형

  • 베스트 상품
    Desktop : 4개 보이기
    Tablet : 2개 보이기
    Mobile : 1개 보이기

  • [x]전체 상품
    Desktop : 12개 보이기
    Tablet : 6개 보이기
    Mobile : 4개 보이기

심화

  • 페이지 네이션 기능을 구현합니다.

주요 변경사항

요구 사항을 최대한 반영해보고 아직 어설픈게 많아 우선 다음 스프린트 미션까지 진행중이면서 pr 올리게 되었습니다.

@charie95 charie95 added the 순한맛🐑 마음이 많이 여립니다.. label Dec 5, 2024
Copy link
Contributor

@withyj-codeit withyj-codeit left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

스프린트 미션 하느라 수고 많으셨어요~👏🏻
배포된 링크 첨부해주시면 확인하는데 도움이 돼서 다음 PR부터 추가해주세요.

setIsDropdownVisible(!isDropdownVisible);
};

const onPageChange = (pageNumber) => {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

컴포넌트 내부에서 정의해서 사용하는 이벤트 핸들러에는 보통 handleOOOO을 많이 사용해요.
그래서 handlePageChange 이름을 권장해요.

console.log(products);
setTotalPageNum(Math.ceil(products.totalCount / pageSize));
setItemList(products.list);
};
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

data fetching을 위해서 useState, useEffect 사용을 반복하게 될텐데 data fetching을 위한 커스텀 훅을 만들고 재사용하는 작업 해보면 좋을 것 같아요.


// 화면 크기 변경할 때마다 pageSize를 다시 계산해 넣음
window.addEventListener("resize", handleResize);
loadData({ orderBy, page, pageSize });
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

useEffect안에 resize 이벤트 설정도 하고, loadData 도 하는데,
서로 다른 목적의 로직은 useEffect를 분리해서 두 개를 만들어주면 하나 하나의 로직에 집중할 수 있고, 각 로직에 필요한 dependency만 설정할 수 있어 좋아요.

@withyj-codeit withyj-codeit merged commit d104416 into codeit-bootcamp-frontend:React-이유섭 Dec 11, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
순한맛🐑 마음이 많이 여립니다..
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants