🛍️ 39cm
📆 2022.11.14~25
BE
이동근, 한상엽 / FE
김동기, 심동섭, 이다빈동근 BE
- DB구축, 회원가입, 로그인, 찜하기, 마이페이지 유저정보상엽 BE
- DB구축, 상품리스트 조회, 장바구니, 결제동기 FE
- 베스트 상품 페이지 리스트, 마이페이지동섭 FE
- 장바구니, 결제페이지, 회원가입, 로그인, 메인다빈 FE
- 제품 상세 페이지, 네비게이션, 네비게이션 검색 바, 메인 페이지Notion
, Trello
, Git-book
, Table plus
, Git
, Slack
JavaScript
, Node.js
, AWS
, MySql
JavaScript
, React
, SCSS
Nav & Main
Nav search
Product detail page
map()
과 드롭다운 기능을 구현fetch
fetch
로 목데이터를 들고와서 읽는 순간 오류가 발생한다 //product.json
{
"productName": " 숏다운 (3color)",
"description": "포근하고 헤어리한 터치감의 우먼스 집업 가디건, YKK 투웨이 지퍼 사용",
"price": 297000,
"category": "상의",
"likesNumber": "likesNumber",
"images": [
".../.../png"
".../.../png"
".../.../png"
],
"reviews": [
{
"reviewTitle": "제목",
"reviewContent": "첫번째 리뷰의 내용입니다.",
"reviewImage": "./.../jpg",
"rating": "rating",
"reviewUser": "@1234KIM"
}
]
}
📌 객체로 된 데이터라 때문에 조건부 실행을 원한다면 아래의 코드로 적어야한다.
//productdetail.js
{pdData[0] !== null && ()}
배열은 true
/false
값으로 들어온다
객체는 undefined
로 들어온다
{pdData[0] && }
로 사용하면 오류가 발생한다.
어떠한 객체를 받아오는지, 비동기 언어의 특성을 파악하지 못하면 초보적인 실수가 반복된다.
시간을 효율적으로 쓰지 못하는 치명적인 단점
실제로 많은 동기들이 나와같은 현상을 겪었기에 누군가에게 도움이 되길 바란다!
fetch
& useEffect
이번 프로젝트를 하면서 가장 혼란스럽고 중요했던 부분입니다.
useEffect(() => {
//통신용입니다
// fetch(`https://reqres.in/api/users/${productId}`)
fetch("/data/product.json")
.then((response) => response.json())
.then((data) => setPdData(data));
}, []);
위의 데이터는 상품에 대한 정보이기 때문에 마운트가 될 때 필요합니다.
의존성 배열을 넣어 최초 마운트 시 데이터를 가져오도록 했습니다.
특정 이벤트에서만 fetch
를 진행하고 싶다면 함수로 선언한 후 이벤트에 넣어 사용합니다.
//productdetail.js
useEffect(() => {
const ipAddress = "%ip%";
//통신용입니다
fetch(`http://${ipAddress}:3000/products/${productId}`, {
headers: {
productId: productId,
},
})
.then((response) => response.json())
.then((data) => {
console.log(data);
setPdData(data.product[0]);
});
fetch(`http://${ipAddress}:3000/likes/product/${productId}`, {
headers: {
authorization: localStorage.getItem("TOKEN"),
},
})
.then((response) => response.json())
.then((result) => {
console.log(result.isLiked);
setLikePd(result.isLiked);
});
}, [productId]);
👍 잘한 점
어떠한 기능을 구현하기 위하여 각자의 리소스와 역량, 한계를 가졌는지 나눠보는 시간
이었다.신뢰도
그리고 함께 한다는 협력감
도 생기게 해주었다.💪 아쉬운 점
🌳 다음 프로젝트 각오:
E.O.D