-
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
[4주차] 김선영 미션 제출합니다. #20
base: master
Are you sure you want to change the base?
Conversation
안녕하세요, 프론트 파트장 주효정입니다🙌 항상 생각한 거지만 중첩 라우팅도 사용하시고 코드를 효율적으로 잘 짜시는 것 같아요! 그리고 Key Question에 대한 답도 너무 깔끔하게 잘 작성해주셨네요~! 한 가지 말씀드리고 싶은 점은 변수/함수를 선언할 때 컴포넌트 내에 있어야 하는 것과 컴포넌트 밖에 있어도 되는 것을 구분하는 것에 대해 학습해봐도 좋을 것 같아요. 예를 들어 이번주도 수고 많으셨고 스터디 시간에 뵐게요🥳 |
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/App.tsx
Outdated
<Route element={<Layout />}> | ||
<Route path="/" element={<FriendPage />} /> | ||
<Route path="/chatrooms" element={<ChatroomPage />}> | ||
<Route path=":id" element={<Chatroom />} /> |
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/InputForm.tsx
Outdated
onConcat(value); | ||
setValue(""); | ||
// 엔터로 전송, shift+엔터로 줄바꿈 | ||
const handleEnter = (e: React.KeyboardEvent<HTMLTextAreaElement>) => { |
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.
우와 shift 엔터 줄바꿈 기능은 생각을 못했는데 ...! 이렇게 구현하는 것이군요!!!! 배워갑니당
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.
안녕하세요 선영님! 안아줘요 캐릭터가 너무 귀여워서 지난 과제부터 너무 기대됬는데 안워줘요 캐릭터들이 더 추가가되었네요 ㅎㅎ...
일단 recoil을 안쓰시고 오로지 배열을 활용하신 부분이 대단한것 같습니당...
저는 오히려 배열로 여러 상태를 처리하는 부분에서 막혀 가지고 recoil사용이 큰 도움이 됬습니다! recoil을 쓰지 않고 처리하시는 부분이 너무 깔끔해서 구현하신 코드들 보면서잘 배우고 갑니다!
이따 저희 스터디 때 뵈요 ㅎㅎ
src/App.tsx
Outdated
const App = () => { | ||
return ( | ||
<> | ||
<GlobalStyle /> |
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.
app.js에 routing을 하셨네용 전 index.tsx에서 해서 app.tsx에서 하는법을 알고 싶었는데 이 기회를 통해 보고 갑니다! globalstyle적용을 아직 안했는데 선영님은 하셨군요!
src/common/customHooks.tsx
Outdated
const roomMembers: User[] = []; | ||
chatrooms[roomId].users.map((memberId) => roomMembers.push(users[memberId])); | ||
if (!includeCurUser) { | ||
roomMembers.shift(); |
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.
배열 맨 앞에있는요소를 삭제하는게 shift라는것을 처음 알았어요! 다음에 코드 짤때 써먹어야 겠어용
curUser: number; | ||
chats: Chat[]; | ||
users: User[]; | ||
} |
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선언 파일이 따로 있는데 여기다가 인터페이스를 선언한 이유가 따로 있으신가요???
if (value.length == 0) { | ||
return; | ||
} | ||
e?.preventDefault(); // 버튼을 통한 제출이라면 새로고침 방지 |
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.
저도 선영님이랑 비슷한 코드를 짯고 form에 onSubmit했는데 버튼을 통한 제출일때랑 그냥 엔터일때랑 구분을 안하고 짜도 제대로 작동하더라고요! 버튼을 누르면 새로고침이 되는 문제는 없었어요! 그런데 위에 handleEnter라는 함수를 선언하셔서 이런 예외처리가 필요해진건가요??
https://react-messanger-16th-ebon.vercel.app/
Routing
: 웹 애플리케이션에서 라우팅이라는 개념은 사용자가 요청한 URL에 따라 알맞는 페이지를 보여주는 것
SPA
: 한 개의 페이지로 이루어진 애플리케이션
상태관리
Props
는 컴포넌트간 전달 되는 데이터State
는 컴포넌트 안에서 관리 되고 시간이 지나면서 바뀌는 동적인 데이터지역 상태
전역 상태
UI 상태
서버 캐시 상태
Form 상태
URL 상태