
[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부분은 줄였다. 💻코드보기
제리의 답변 케바케지만, 저는 많은 경우에 컴포넌트와 같은 파일에 작성하는 것을 선호합니다!정우병의 답변 케바케지만