20~21주차
미니프로젝트: 숙박 예약 API 서비스
React를 기반으로 개발된 숙박 예약 서비스입니다.
FE 5명, BE 3명이 참여했으며 약 2주간 개발했습니다.
공개용 Github : https://github.com/Yanolja-MiniProject-10/Yanolja-clone-fe
배포 링크 : https://yanolja.vercel.app/
Test ID : test@yanolja.com
Test PW : 00000
React, JavaScript, TypeScript, Recoil, Axios, React-Query, Vite, Github, Vercel, Styled Components
주요 내용 요약
Common Header - 페이지 별 제목과 필요한 아이콘을 보여줍니다.
- 영상
- 예시 이미지
- 예시 이미지
enabled
을 사용하면 비동기 함수인 useQuery를 동기적으로 사용 가능하다.
const useFetchCarts = () =>
useQuery({
queryKey: ["fetchCarts"],
queryFn: () => fetchCarts(),
});
//api 호출 함수를 더 만들지 않고 useQuery를 추가하여 enable 사용
// 동일한 쿼리키를 사용하여, mutate를 동일하게 적용받도록 함
const useFetchCartCount = (user: UserToken) =>
useQuery({
queryKey: ["fetchCarts"],
queryFn: () => fetchCarts(),
enabled: !!user.accessToken, // accessToken 유무로 user 로그인 상태일 때 실행
});
위에서 기재했던 react-query를 통한 api 호출 함수의 컴포넌트 별 조건부 재 사용
부분이 오래 고민했던 곳이다.
api 호출을 비동기로 사용했는데, api 호출을 조건에 따라 동기적으로 사용이 필요했기 때문이다.
유저가 로그인 상태일 때만 함수를 실행해야 하는 조건이었는데
custom hook의 경우 useEffect나 조건문에 넣지 못해서, 처음에는 api호출 함수에서 조건을 넣어봤지만 번번히 실패했다.
그러다 react-query의 enabled
를 알게 되고 손쉽게 조건부 처리를 할 수 있었다.
const useFetchCartCount = (user: UserToken) =>
useQuery({
queryKey: ["fetchCarts"],
queryFn: () => fetchCarts(),
enabled: !!user.accessToken, // accessToken 유무로 user 로그인 상태일 때 실행
});
해당 게시글은 부트캠프 과정 중 수료 점수에 반영되어, 제목과 해시태그를 포함한 지정된 양식으로 작성되었습니다.