-
Notifications
You must be signed in to change notification settings - Fork 79
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
[김지윤] Sprint10 #650
The head ref may contain hidden characters: "Next.js-\uAE40\uC9C0\uC724-sprint10"
[김지윤] Sprint10 #650
Conversation
…ithub-actions [Fix] delete merged branch github action
- boards/ 경로에서 게시글을 클릭하면 해당 boards/id 로 이동하도록 함 - pages/boards/ 구조 수정
…-Sprint-Mission into Next.js-김지윤-sprint10
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.
이번 코드도 너무 좋습니다!
제네릭 타입으로 만든 커스텀 훅도 잘해주셨고 👍
이제 코드를 잘 분리해보는 연습을 해보면 좋을 거 같네요
파일에 useState, useEffect와 같은 로직 관련 코드가 하나도 없게끔 만들어보세요!
연습할때 이런 챌린지가 도움이 많이 됩니다 ㅎㅎ
미션 진행하시느라 고생하셨어요! 이번주도 화이팅🔥
@@ -32,7 +33,7 @@ | |||
.dropDownItem { | |||
padding: 6px 0; | |||
&:hover { | |||
color: var(--blue); | |||
color: $blue; |
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.
오! 점점 scss를 잘 활용하고 계시는데요 👍
const [debouncedSearchTerm, setDebouncedSearchTerm] = useState(""); | ||
|
||
// 디바운싱을 위한 useEffect | ||
useEffect(() => { |
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.
goood 💯 바로 디바운싱을 검색에 적용하셨다니! 아주 적절하게 디바운싱을 잘 사용하셨습니다 👍
이제 로직도 만들어봤으니 디바운싱 자제를 "커스텀 훅"으로 빼보면 다른 컴포넌트에서도 재사용할 수 있을 것 같은데
한번 연습해보시길 추천할게요!
<Spinner /> | ||
) : ( | ||
<button | ||
className={styles.submitButton} |
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.
이제 여기서 button이 disabled한 상태일때 css를 수정해주고 싶을 수 있어요
그럴때 현업에서는 classnames라는 라이브러리와 함께 사용합니다
사실 scss + classnames 는 거의 한 세트라고 봐도 무방해요 ㅎㅎ
const articleImage = article?.image || ""; | ||
|
||
if (isLoading) { | ||
return <Spinner />; |
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.
얼리 리턴 너무 좋습니다 👍
return ( | ||
<div className={styles.container}> | ||
{comments?.list?.map((comment) => ( | ||
<> |
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.
map()으로 돌리고 있기 때문에 key 값이 없으면 warning이 뜰거에요! 빈 태그 대신 Fragment를 사용해서 key 값도 부여해주시는 걸 추천할게요 👍
export default function CreateArticle() { | ||
const url = `/articles`; | ||
|
||
const [formValues, setFormValues] = useState<FormValues>({ |
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.
state를 객체 형태로 관리하는 방법은 저도 많이 애용하는 방법이에요! 자주 사용하다보면 state관리하기도 편해서 좋답니다!
배포 사이트
요구사항
��- Next.js를 사용합니다
기본
상품 등록 페이지
상품 상세 페이지
심화
주요 변경사항
addboard/
대신boards/:id
,boards/create
로 라우팅 했습니다.스크린샷
멘토에게
추가 질문은 코멘트로 남겨두겠습니다☺️