Conversation
Session03/점메추 과제/index.html
Outdated
There was a problem hiding this comment.
하하 나도 이거 항상 까먹어 나도 이거 리팩토링 해야돼 킄킄.."KO..."
시작 할 때마다 노트북에 붙여놔야겠어.
There was a problem hiding this comment.
main처럼 시맨틱 태그도 활용해주자! article로 바꾸면 될 것 같아!
There was a problem hiding this comment.
나는 공통으로 사용되는 버튼들은 컴포넌트 말고 공통?ui로 뺐어 그러면 코드의 재사용성을 높일 수 있을 거 같아서 고민 해봤는데 미뇽도 한번 트라이해봐!!!
There was a problem hiding this comment.
각 버튼의 스타일이 중복되는 것을 방지하려면 버튼에 재사용 가능한 스타일 구성 요소로 구현해보는 것도 괜찮을 것 같아 예를 들어 DishButton style을 만들어서!😊
There was a problem hiding this comment.
또 버튼들 같은 경우 나는 const categoriesLevel1 = ["소년", "청년", "중년"]; 해서 map함수로 돌렸는데 이러면 코드가 짧아지고, 모든 경우에 대해서 재사용이 가능해지니까 참고해도 좋을 것 같소!!👍
Session03/점메추 과제/src/App.jsx
Outdated
There was a problem hiding this comment.
나는 이제 컴포넌트를 분리해서 거기에 쓰이는 변수들을 정리했는데 미뇽이도 예를 들어, 랜덤 컴포넌트를 만들어서 거기에 이제 변수들도 넣어서 관리하면 더 가독성 좋은 + 재사용성에 용이한 코드가 될 것 같아1
app.jsx에 이렇게 함수와 변수선언한 것은 가독성을 좀 해치는 것 같아!폴더구조를 설계해서 거기에 맞는 함수를 정리해 보는 것도 좋을 것 같아🙌🙌
There was a problem hiding this comment.
가영이의 추천대로 전역으로 쓰는 것보다 해당 변수들이 쓰이는 컴포넌트 내에서 만들어주면 더 깔끔해질 것 같아요ㅎㅎ 값 추적이나 변수 관리에도 더 용이할 것 같고요!
urjimyu
left a comment
There was a problem hiding this comment.
과제하면서 고민한 흔적이 곳곳에 보여서 너무 좋았어요! 너무너무 고생 많았습니다🥺 리뷰하면서 저랑 다르게 구현한 부분들 보면서 많이 배웠습니다👍🏻❣️
Session03/점메추 과제/public/vite.svg
Outdated
There was a problem hiding this comment.
리액트 프로젝트 만들면 자동으로 생기는 이런 애들 중에 필요없는 것들은 삭제해주면 좋아요
Session03/점메추 과제/src/App.jsx
Outdated
There was a problem hiding this comment.
ThemeProvider 사용법
이 글 참고해서 ThemeProvider에 theme을 넣어주고 그 밑에 GlobalStyle을 넣어주면 좋을 것 같아요:)
다만 저 링크와는 다르게 우리는 theme 파일을 이미 따로 만들어줬으니까 그걸 불러와서 ThemeProvider에 넣어주면 됩니다!
Session03/점메추 과제/src/App.jsx
Outdated
There was a problem hiding this comment.
가영이의 추천대로 전역으로 쓰는 것보다 해당 변수들이 쓰이는 컴포넌트 내에서 만들어주면 더 깔끔해질 것 같아요ㅎㅎ 값 추적이나 변수 관리에도 더 용이할 것 같고요!
There was a problem hiding this comment.
이 부분은 App.jsx 를 피드백대로 고친 후에 지워주면 됩니다~!
There was a problem hiding this comment.
오 이렇게 css까지 theme으로 빼주었군요! 저도 재사용하는 스타일링이 있으면 이렇게 해봐야겠어요👍🏻
There was a problem hiding this comment.
계산한 점수값에 해당하는 인덱스 사진을 띄워주는 형식으로 결과를 보여주게 되면 나중에 데이터 항목이 추가되거나 삭제되었을 때 결과가 달라질 수 있을 것 같아요..! 배열 형식으로 선택한 카테고리를 state로 저장해서 일치하는 설명을 가진 사진을 보여주는 방식으로 수정할 수 있을 것 같아요오
ex) ["국물 있음", "한식"]
There was a problem hiding this comment.
와 rem 변환까지 꼼꼼하게 고민한 게 보여서 너무 좋아요! 저도 추가하겠습니다ㅎㅎ
There was a problem hiding this comment.
이렇게 계속 여러 번 재사용되는 버튼 같은 컴포넌트들은 아예 따로 만들어준다음 import해서 사용하는 방법도 있습니다!
아래 글은 그냥 참고용! 저희 과제에서는 꼭 저렇게 padding 값까지 넘겨줄 필요 없이 모양이 완전히 똑같은 버튼들을 재사용하기 위해서 차이가 생기는 부분만(text같은 부분) props로 넘겨서 컴포넌트로 빼주면 좋을 것 같아요
[React] React로 범용적인 재사용 컴포넌트 만들어보기
출처: https://junjangsee.tistory.com/entry/React로-범용적인-재사용-컴포넌트-만들어보기 [개발 여행:티스토리]
🌱 기본 조건
🧩 기본 과제
[취향대로 추천]
답변 선택
이전으로, 다음으로(결과보기) 버튼
아무것도 선택되지 않았을 시 버튼을 비활성화 시킵니다.
→ 눌러도 아무 동작 X
→ 비활성화일 때 스타일을 다르게 처리합니다.
이전으로버튼을 누르면 이전 단계로 이동합니다.다음으로/결과보기버튼을 누르면 다음 단계로 이동합니다.버튼 호버시 스타일 변화가 있습니다.
결과
[ 랜덤 추천 ]
[ 공통 ]
다시하기버튼→ 랜덤추천이면
랜덤 추천 start화면으로, 취향대로 추천이면취향대로 추천 start화면으로 돌아갑니다.→ 모든 선택 기록은 리셋됩니다.
🌠 심화 과제
theme + Globalstyle 적용
애니메이션
헤더
처음으로버튼→ 추천 종류 선택 화면일시 해당 버튼이 보이지 않습니다.
→ 처음 추천 종류 선택 화면으로 돌아갑니다.
→ 모든 선택 기록은 리셋됩니다.
[ 취향대로 추천 ]
단계 노출
이전으로 버튼
useReducer,useMemo,useCallback을 사용하여 로직 및 성능을 최적화합니다.생각과제
🍎 PR
🥺 소요 시간, 어려웠던 점
4일 하루에 4-5시간🍏 구현 결과물
🌈 취향대로 추천과 다시하기로 선택을 다르게 할 시 보여주기
default.mov
🌈 랜덤 추천과 다시하기
default.mov
🌈 다음으로 버튼 disable -> 선택 시 able로
disable.mov
🌈 이전으로 다음으로 구현
default.mov
🌈 선택 다르게 해서 결과에 맞게 보여주기
default.mov