- 검색어 자동완성 영상 미리보기
- 구글 브라우저에서 한글의 경우 조합문자로 인한 KeyDown Event가 2번 실행되는 문제 발생 및 해결 -> 해결한 방법 ←
- DragCarousel 영상 미리보기
- 블로그 정리 ←
- 백엔드 개발자와의 협업 과정에서 api 제공 일정이 지연됨에 따라 프론트엔드 개발의 병목 현상을 가정하여 MSW API 모킹 작업 진행
-
현재 페이지에서 스크롤을 통해 아래쪽 페이지에 있다가 다른 페이지로 넘어가면 맨위부터 시작하지 않고, 내려간 스크롤 위치로 넘어가 사용자 입장에서 불편한 문제 발생
-
pathname이 바뀔 때 window.scrollTo을 최상단으로 이동시켜 문제 해결
const { pathname } = useLocation(); useEffect(() => { window.scrollTo({ top: 0, behavior: 'smooth' }); }, [pathname]);
- Suspense를 통해 데이터를 비동기로 로딩하는 동안 '로딩 중...' 메시지를 표시하고, 데이터를 성공적으로 받아오면 화면을 렌더링하도록하여 사용자 친화적으로 로딩 상태를 관리했습니다.
-
기본적으로 완전 다른 경로의 경우 준비중.. 페이지로 넘어가도록 구현했습니다. 하지만 :shopList로 받은 경우
즉 route 매개변수 사용의 경우 문제가 발생했습니다.
-
<Route path={'/category/:shopList'} element={<ShopCategoryPage />} />
이런식으로 경로를 지정하고,/category/1인분아무경로로 이동
의 경로로 접속한 경우 문제없이 해당 경로로 이동하게 되는 문제가 발생했습니다. -
문제해결
- 아래와 같이 shopList의 Title에 포함되어 있지 않은 경우 404 경로로 이동시켰으며, replace:true 속성을 이용해 이전 기록으로 돌아가지 못하도록 했습니다.
useEffect(() => { const shopNames = data?.map((item: CreateFoodCategoriesDataResponse) => item.title); if (shopNames && !shopNames.includes(shopList)) { navigate('/404', { replace: true }); return; } }, [data, navigate, shopList]);
- 비슷한 구조를 가지고 있고, 예를들어 3가지의 기능 차이 및 UI가 다를때 하나의 컴포넌트로 재사용할지 vs 3가지의 비슷하지만 다른 컴포넌트를 구성할지에 대해 고민해보았습니다. 블로그 보러가기 ←