[React] 디자인시스템 FOCUS 챌린지 - Numble
json-server를 json파일로 교체 💻코드보기
json-server
와 axios
를 사용했지만, vercel업로드를 하게되면서 폐기하게 되었다data.json
은 그대로 두고 const jsonDatas = require("./json/data.json");
로 수정하여 데이터를 가져온다SwiperSlider
보여지는 슬라이더 갯수 props로 내림 💻코드보기
진행중인 인기 이벤트
섹션이 3개여서 props로 갯수 내려주는걸로 변경했다진행중인 인기 이벤트
날짜 부분 day.js
적용 💻코드보기
21-12-12
로 내려오는 값을 2021-12-12
로 변경 후 format적용하여 12.12
와 요일
을 뽑아냈다.d-day
부분이 의외로 까다로웠다. day.js
로 dayOfYear
를 뽑아내서 계산을 하는데 내년, 올해, 작년을 Early Return
하여 분기처리하였다 💻코드보기SwiperSlider
맨 앞, 맨 끝 navigation 보이기 안보이기오늘의 특가 TIME DEAL
/ MD추천 클래스
/ 진행중인 인기 이벤트
/ 오픈 예정 클래스
4개의 섹션을 작업해야한다오늘의 특가 TIME DEAL
같은 경우 모든 데이터가 가감없이 들어가 있지만, MD추천 클래스
부터는 price
가 없는 post도 있었다mdRecommendData.price
가 있으면 mdRecommendData.price.salePrice
을 내려줌<CardMdDeal
salePrice={
mdRecommendData.price && mdRecommendData.price.salePrice
}
originalPrice={
mdRecommendData.price &&
mdRecommendData.price.originalPrice
}
installment={
mdRecommendData.price &&
mdRecommendData.price.installment
}
></CardMdDeal>
CardMdDeal.tsxsalePrice
가 있어야 <CardPrice/>
을 랜더{salePrice && (
<CardPrice
salePrice={salePrice}
originalPrice={originalPrice}
installment={installment}
></CardPrice>
)}
미래에서 온 해답
optional chaining
을 사용하여 App.tsx부분은 줄였다. 💻코드보기제리의 답변
케바케지만, 저는 많은 경우에 컴포넌트와 같은 파일에 작성하는 것을 선호합니다!정우병의 답변
케바케지만