-
Notifications
You must be signed in to change notification settings - Fork 46
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
[김진희] sprint 9 #280
The head ref may contain hidden characters: "Next-\uAE40\uC9C4\uD76C"
[김진희] sprint 9 #280
Conversation
수고 하셨습니다 ! 스프리트 미션 하시느라 정말 수고 많으셨어요. |
커밋을 많이 못해서 파일이 많이 올라갔습니다ㅠㅠ 죄송합니다ㅠㅠ괜찮습니다 ㅎㅎㅎ 작성주신 코드 기준으로 꼼꼼히 리뷰하도록 하겠습니다 !! 반응형 구현 예정입니다.넵넵 ! ㅎㅎ 타입스크립트로 변환해서 올리겠습니다!👍👍 |
<div className={styles.cardContent}> | ||
<div className={styles.cardHead}> | ||
<Image width={'12'} height={'14'} src={medal} alt="메달" /> | ||
<div className={styles.cardHeadTitle}>Best</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.
하나의 섹션이므로 h
시리즈가 어떨까 싶습니다 !
<div className={styles.cardHeadTitle}>Best</div> | |
<h2 className={styles.cardHeadTitle}>Best</h2> |
<ul className={styles.tab}> | ||
<li className={styles.tabList}> | ||
<Link id={styles.boards} href="/boards"> | ||
자유게시판 | ||
</Link> | ||
</li> | ||
<li className={styles.tabList}> | ||
<Link id={styles.fleaMarket} href="/items"> | ||
중고마켓 | ||
</Link> | ||
</li> | ||
</ul> |
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.
굳굳 ! 적절한 ul
과 li
네요.
의미론적으로 잘 작성하셨습니다 👍👍
images: { | ||
unoptimized: true, | ||
domains: ['sprint-fe-project.s3.ap-northeast-2.amazonaws.com'], | ||
}, |
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.
굳굳 화이트리스트도 잘 작성하셨군요 ! 👍
const getList = async ({ page = 1, pageSize = 10, orderBy = 'recent', keyword = '' }) => { | ||
const params = { | ||
page, | ||
pageSize, | ||
orderBy, | ||
keyword, | ||
}; | ||
|
||
try { | ||
const { data } = await axios.get('/articles', { params }); | ||
return data; // 데이터 반환 | ||
} catch (error) { | ||
console.error('API 호출 실패:', error); | ||
return null; // 실패 시 null 반환 | ||
} | ||
}; | ||
|
||
const fetchBestData = async param => { | ||
const data = await getList(param); // 비동기 호출 후 대기 | ||
|
||
if (data && Array.isArray(data.list)) { | ||
// null, array체크후 setstate | ||
// console.log(data.list); | ||
setBestList(data.list); | ||
} else { | ||
setBestList([]); | ||
} | ||
// console.log(data); | ||
}; |
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.
getList
는 useEffect
안에 넣으면 어떨까요?
const getList = async ({ page = 1, pageSize = 10, orderBy = 'recent', keyword = '' }) => { | |
const params = { | |
page, | |
pageSize, | |
orderBy, | |
keyword, | |
}; | |
try { | |
const { data } = await axios.get('/articles', { params }); | |
return data; // 데이터 반환 | |
} catch (error) { | |
console.error('API 호출 실패:', error); | |
return null; // 실패 시 null 반환 | |
} | |
}; | |
const fetchBestData = async param => { | |
const data = await getList(param); // 비동기 호출 후 대기 | |
if (data && Array.isArray(data.list)) { | |
// null, array체크후 setstate | |
// console.log(data.list); | |
setBestList(data.list); | |
} else { | |
setBestList([]); | |
} | |
// console.log(data); | |
}; | |
const fetchBestData = async param => { | |
const getList = async ({ page = 1, pageSize = 10, orderBy = 'recent', keyword = '' }) => { | |
const params = { | |
page, | |
pageSize, | |
orderBy, | |
keyword, | |
}; | |
try { | |
const { data } = await axios.get('/articles', { params }); | |
return data; // 데이터 반환 | |
} catch (error) { | |
console.error('API 호출 실패:', error); | |
return null; // 실패 시 null 반환 | |
} | |
}; | |
const data = await getList(param); // 비동기 호출 후 대기 | |
if (data && Array.isArray(data.list)) { | |
// null, array체크후 setstate | |
// console.log(data.list); | |
setBestList(data.list); | |
} else { | |
setBestList([]); | |
} | |
// console.log(data); | |
}; |
이렇게 하면 상태의 최신값을 사용할 수 있다는 보장과 리렌더링에 의한 불필요한 재선언을 방지할 수 있습니다 👍
try { | ||
const { data } = await axios.get('/articles', { params }); | ||
return data; // 데이터 반환 | ||
} catch (error) { | ||
console.error('API 호출 실패:', error); | ||
return null; // 실패 시 null 반환 | ||
} |
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.
굳굳! try...catch
도 적절히 사용되었군요 !
) : ( | ||
<div> 아직 리스트가 없습니다.</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.
값이 존재하지 않을 경우도 잘 고려하셨군요 ㅎㅎㅎ
사용자 경험 고려하신게 느껴집니다 ! 👍👍
수고 정말 많으셨어요. 진희님 ㅎㅎㅎ |
요구사항
기본
심화
주요 변경사항
스크린샷
멘토에게