-
Notifications
You must be signed in to change notification settings - Fork 12
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
[3주차] 강나연 미션 제출합니다. #1
Conversation
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.
나연님 안녕하세요. 프론트 운영진 김채림입니다. 🍀
들어가자마자 포닝인줄 알았어요 🥺
디자인도 너무 예쁘고 수행해야 하는 과제 요소들도 다 성실히 해주신 것 같아 너무 뿌듯합니다 !
코드도 깔끔하게 작성해주셔서 제가 크게 코멘트 드릴 점은 없고 몇가지 제안만 드렸으니 한 번 확인해주시면 감사하겠습니다.
과제 하시느라 수고 많으셨고 스터디 시간에 뵙겠습니다!
src/components/MessageInput.tsx
Outdated
chatid: Date.now(), | ||
myAccount: userAccount ? true : false, | ||
chat: message.value, | ||
time: moment(new Date()).format("HH:mm"), |
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.
이런 디테일 너무 좋아요 🥺
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.
moment
좋더라구요 히히... 🥰
src/components/Header.tsx
Outdated
export type HeaderPropsType = { | ||
leftChild: string; | ||
rightChild: string; | ||
}; |
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.
interface 파일이 있는데 컴포넌트 내부에 따로 타입을 지정해주신 이유가 있을까요? 또 헤더에서만 사용되는 타입인 것 같은데 export를 해주신 이유가 있을까요?!
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.
type
과 interface
에 대해 공부하다가 넣은 코드인데 고치지 않고 그대로 들어갔네요... 🫠 interface 파일에서 한번에 관리하도록 수정해 보겠습니다...!
src/components/MessageList.tsx
Outdated
}>` | ||
font-size: 0.8rem; | ||
padding: 0.5rem; | ||
|
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.
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.
헉 완전 꿀팁이에요... 감사합니다 😻
src/components/MessageList.tsx
Outdated
<UserWrapper | ||
key={chat.chatid} | ||
myAccount={chat.myAccount} | ||
userAccount={userAccount} | ||
> | ||
<ProfileImage | ||
src={`${process.env.PUBLIC_URL}/images/${chat.userid}.jpg`} | ||
/> | ||
<div> | ||
<NameWrapper | ||
key={chat.chatid} | ||
myAccount={chat.myAccount} | ||
userAccount={userAccount} | ||
> | ||
<UserName> | ||
{chat.myAccount ? "NaYeon 💭" : filteredUser!.name} | ||
</UserName> | ||
</NameWrapper> | ||
<BubbleWrapper | ||
key={chat.chatid} | ||
myAccount={chat.myAccount} | ||
userAccount={userAccount} | ||
> | ||
<Bubble | ||
key={chat.chatid} | ||
myAccount={chat.myAccount} | ||
userAccount={userAccount} | ||
> | ||
{chat.chat} | ||
</Bubble> | ||
<Time>{chat.time}</Time> | ||
</BubbleWrapper> | ||
</div> | ||
</UserWrapper> | ||
))} | ||
</ChatWrapper> |
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.
현재 컴포넌트 분리가 이뤄지지 않아 새로운 채팅 입력시 모든 메세지가 렌더링됩니다. singleMessage를 컴포넌트로 따로 분리하여 React.memo를 사용해보시면 좋을 것 같아요!
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.
헉 채림님이 주신 자료 보고 바로 수정했어요!! 앞으로 렌더링 최적화에도 신경을 쓰며 코드를 짜야겠네요... 감사합니다 😽🫶🏻😽🫶🏻
안녕하세요 강나연입니다!
타입스크립트… 처음이라 그런지 정말 정말 정말 정말 어렵네요
멘탈이 아주 너덜너덜해졌습니다 ㅎㅅㅎ...🥲
나름 확장성을 고려하며 짜려고 했으나… 다음 과제 할 때 돼 봐야 잘 짠 건지 알 수 있을 거 같아요… 😇
css는 뉴진스의 포닝을 따라해 봤습니다! 📱
그리고 이번에
Recoil
을 처음 써 봤는데 처음이라 아주 아주 많이 버벅이긴 했지만(^...^) 익숙해지면 정말 유용할 것 같아요!이번 과제는 어려웠던 점이 유난히 많았는데요... 그 중 몇 가지를 뽑아 보자면
interface
라든지... 타입스크립트를 공부하며 새로 접한 개념들이 너무 낯설어서 코드를 짜는 도중 변수명을 계속 바꿨습니다 ㅜㅅㅜ... 커밋 단위로 코드 보는 것보다 그냥 한번에 보시는 게 편할 거예요... 🫠✔️ 배포 링크: https://react-messenger-16th-kongnayeon.vercel.app/
많은 조언 부탁드립니다... 🥺