홈페이지 한 섹션 클론 코딩
숫자가 0부터 올라가는 지표와 수상 내역이 차례로 나타나는 한 섹션을 TypeScript React 로 똑같이 만든 과제.
React 17TypeScriptreact-countupstyled-componentsCRA 4
여행 서비스 홈페이지의 한 섹션을 그대로 만드는 과제였다. 조건은 네 가지다.
- 숫자는 0부터 증가한다.
- 좌측 이미지, 리뷰, 수상 내역 순으로 화면에 보인다.
- 애니메이션 duration 은 700ms, 세 애니메이션은 100ms 간격으로 차례로 시작한다.
- 최소 화면폭은 1200px, 반응형은 고려하지 않는다.
중점 사항
- 컴포넌트 설계와 상태 관리:
styled-components로 기능별 컴포넌트를 나누고DefaultTheme으로 스타일 값을 분리했다. 애니메이션 시작 시점은 커스텀 훅useVisible하나로 관리한다. - 일관성 있는 코드: TypeScript 로 데이터 타입을 구분하고,
./상대 경로 대신common/hooks/useVisible처럼 폴더 이름으로 import 한다. ESLint 와 Prettier 를 맞췄다. - 화면과 같은 애니메이션: easings.net 에서 끝에 급격히 느려지는 easeOutExpo 를 찾아
react-countup의 easing 형식에 맞춰animation.ts에 두었다.
플레이그라운드에서 바뀐 것
GitHub Pages 주소로 잡혀 있던 homepage 만 이 사이트 경로로 바꿨다. 코드는 그대로다.