Skip to content
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

Closed
wants to merge 14 commits into from

Conversation

kongnayeon
Copy link
Member

@kongnayeon kongnayeon commented Sep 30, 2022

안녕하세요 강나연입니다!

타입스크립트… 처음이라 그런지 정말 정말 정말 정말 어렵네요
멘탈이 아주 너덜너덜해졌습니다 ㅎㅅㅎ...🥲
나름 확장성을 고려하며 짜려고 했으나… 다음 과제 할 때 돼 봐야 잘 짠 건지 알 수 있을 거 같아요… 😇
css는 뉴진스의 포닝을 따라해 봤습니다! 📱
그리고 이번에 Recoil을 처음 써 봤는데 처음이라 아주 아주 많이 버벅이긴 했지만(^...^) 익숙해지면 정말 유용할 것 같아요!


이번 과제는 어려웠던 점이 유난히 많았는데요... 그 중 몇 가지를 뽑아 보자면

  • 타입 지정 → anyscript ^...^가 될 뻔 했다네요
  • 원하는 데이터만 추출하기 → selector 사용
  • undefined 어쩌구… → 마법의 느낌표,, 이거 막 써두 되는지 모르겠네요,,
  • 네이밍 → interface라든지... 타입스크립트를 공부하며 새로 접한 개념들이 너무 낯설어서 코드를 짜는 도중 변수명을 계속 바꿨습니다 ㅜㅅㅜ... 커밋 단위로 코드 보는 것보다 그냥 한번에 보시는 게 편할 거예요... 🫠

✔️ 배포 링크: https://react-messenger-16th-kongnayeon.vercel.app/

많은 조언 부탁드립니다... 🥺

Copy link

@chaaerim chaaerim left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

나연님 안녕하세요. 프론트 운영진 김채림입니다. 🍀
들어가자마자 포닝인줄 알았어요 🥺
디자인도 너무 예쁘고 수행해야 하는 과제 요소들도 다 성실히 해주신 것 같아 너무 뿌듯합니다 !
코드도 깔끔하게 작성해주셔서 제가 크게 코멘트 드릴 점은 없고 몇가지 제안만 드렸으니 한 번 확인해주시면 감사하겠습니다.
과제 하시느라 수고 많으셨고 스터디 시간에 뵙겠습니다!

chatid: Date.now(),
myAccount: userAccount ? true : false,
chat: message.value,
time: moment(new Date()).format("HH:mm"),

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

이런 디테일 너무 좋아요 🥺

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

moment 좋더라구요 히히... 🥰

Comment on lines 5 to 8
export type HeaderPropsType = {
leftChild: string;
rightChild: string;
};

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

interface 파일이 있는데 컴포넌트 내부에 따로 타입을 지정해주신 이유가 있을까요? 또 헤더에서만 사용되는 타입인 것 같은데 export를 해주신 이유가 있을까요?!

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

typeinterface에 대해 공부하다가 넣은 코드인데 고치지 않고 그대로 들어갔네요... 🫠 interface 파일에서 한번에 관리하도록 수정해 보겠습니다...!

}>`
font-size: 0.8rem;
padding: 0.5rem;

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

image

한글을 입력했을 때에는 줄바꿈이 되지만 영어로 입력했을 때 사진과 같이 텍스트가 잘리는 현상이 발생합니다. word-break: break-all;을 추가해주면 이를 방지할 수 있을 것 같습니다.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

헉 완전 꿀팁이에요... 감사합니다 😻

Comment on lines 26 to 61
<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>

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

현재 컴포넌트 분리가 이뤄지지 않아 새로운 채팅 입력시 모든 메세지가 렌더링됩니다. singleMessage를 컴포넌트로 따로 분리하여 React.memo를 사용해보시면 좋을 것 같아요!

참고자료

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

헉 채림님이 주신 자료 보고 바로 수정했어요!! 앞으로 렌더링 최적화에도 신경을 쓰며 코드를 짜야겠네요... 감사합니다 😽🫶🏻😽🫶🏻

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants