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

경북대 FE_이정민 4주차 과제 Step 3,4 #85

Open
wants to merge 25 commits into
base: userjmmm
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
518409a
docs: 0단계 - 구현할 기능 목록 정리
Jul 17, 2024
07fa961
chore: chakra-ui 설치
Jul 17, 2024
b981cd7
feat: 전체 App에 적용되도록 ChakraProvider 추가
Jul 17, 2024
63e85ea
feat: products detail 정보를 가져오는 hooks 코드 추가
Jul 17, 2024
0f710ae
feat: Chakra UI를 사용해서 상세 페이지 UI 구현
Jul 18, 2024
417e1b9
feat: theme 페이지에서 GoodsItem 클릭 시 상세페이지로 이동 구현
Jul 18, 2024
5c95117
feat: 없는 상품의 경우 메인 페이지로 연결하도록 구현
Jul 18, 2024
847cdf3
refactor: not Found 상태 관리를 useGetProductDetail hook으로 이동
Jul 18, 2024
a187a8d
feat: 나에게 선물하기 버튼 클릭 시, 로그인 되어 있지 않다면 로그인 페이지로 이동하도록 구현
Jul 18, 2024
888e5cf
feat: Chakra UI를 이용해서 상품 결제(Order) 페이지 구현
Jul 18, 2024
fc4c898
docs: 기능 구현 사항 추가 및 완료 상태 수정
Jul 18, 2024
dd4209d
feat: 상세 페이지에서 로그인 페이지로 이동하면, 로그인 후 다시 상세페이지로 돌아오도록 쿼리 파라미터 수정
Jul 18, 2024
319715a
refactor: 불필요한 콘솔 로그 제거
Jul 18, 2024
4f7925c
docs: 2단계 기능 구현 목록 작성
Jul 18, 2024
244cf60
feat: /api/v1/products/{productId}/options를 받아오도록 구현
Jul 19, 2024
840391e
feat: 카드 메시지가 100글자가 넘어가면 100자 이내로 입력하라고 안내하는 alert창 구현
Jul 19, 2024
b48f60e
feat: 현금 영수증 checkbox 클릭 시 현금영수증 번호가 입력되었는지 확인하는 alert 창 구현
Jul 19, 2024
d92aa26
feat: 현금 영수증 입력은 숫자만 입력하도록 안내하는 alert창 구현
Jul 19, 2024
5a211a5
feat: 상품 상세 페이지에서 상품의 개수를 option API의 giftOrderLimit을 초과한 경우 선택이 불가하도…
Jul 19, 2024
d14c2f4
docs: 3단계 기능 구현 목록 작성
Jul 19, 2024
267c43c
chore: react-hook-form 라이브러리 추가
Jul 19, 2024
d0831a5
feat: 기존에 만든 제품 상세페이지의 form / input을 react-hook-form으로 변경
Jul 19, 2024
ae19a21
refactor: reack-hook-form 기능을 활용해서 제품 상세페이지 validate 구현
Jul 19, 2024
b42dd18
refactor: 기존에 만든 주문 페이지를 react-hook-form을 이용하도록 코드 수정
Jul 19, 2024
2fa0aaa
docs: README.md에 step4 답변 추가
userjmmm Jul 20, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1 +1,15 @@
# 카카오 테크 캠퍼스 - 프론트엔드 카카오 선물하기 편

### 3단계 기능 구현 목록
- [x] 기존에 만든 form / input을 react-hook-form으로 변경
- [x] validate 또한 react-hook-form 기능을 적극적으로 활용 (이 과정에서 zod를 사용해도 좋음)

### 4주차 질문
1. 제어 컴포넌트와 비제어 컴포넌트의 차이가 무엇이고 제어 컴포넌트로 Form을 만들어야 하는 경우가 있다면 어떤 경우인지 예시와 함께 설명해주세요.
: 제어 컴포넌트와 비제어 컴포넌트의 차이는 변경되는 상태를 React 내에서 추적할 수 있는가를 기준으로 나뉩니다. 제어 컴포넌트는 곧바로 변경되는 값을 제어할 수 있고, 비제어는 컴포넌트는 DOM 자체를 통해 상태를 관리하기 때문에 React 내에서 상태를 추적할 수 없습니다. 제어 컴포넌트로 Form을 만들어야 하는 경우는 메시지가 100글자를 넘어가면 이내로 입력하라고 안내하는 것처럼 실시간으로 값을 추적해야 할 때 주로 사용합니다.

2. input type의 종류와 각각 어떤 특징을 가지고 있는지 설명해주세요.
: text, password,email,number,date 등이 있으며 흔히 사용하는 input 타입에 맞게 입력을 더 편리하게 받게 해준다는 특징이 있습니다. 가령 password는 입력된 내용을 *로 표현하여 보안을 강화합니다.

3. label tag는 어떤 역할을 하며 label로 input field를 감싸면 어떻게 동작하는지 설명해 주세요.
: label tag는 form 요소에 대해 추가적인 설명을 하는 역할을 해서 유저가 form 요소의 의미를 더욱 쉽게 이해할 수 있도록 돕습니다. 또한 label로 input field를 감싸면 유저가 클릭할 수 있는 영역이 넓어져 더 편리하게 form 요소를 사용할 수 있습니다.
Loading