인라인 스타일 을 사용했습니다. 저는 개발단계에서는 빠른 프로토타이핑과 디버깅 이 가능한 인라인 스타일을 선호합니다.
같은 이유로 tailwindcss를 좋아합니다.
다만 불필요한 경우, 블로그 글의 코드 가독성 을 위해 인라인 스타일을 지워서 작성했습니다.
기상청 프로젝트는 워낙 UI가 다양하고 기능이 많아 컴포넌트 재사용이 참 어려운 프로젝트입니다.
그래서 컴포넌트를 최대한 작게, 그래서 보기 편하고 디버깅이 쉽게 만드는 데 노력했습니다.
기능 개발 준비
컴포넌트 나누기
먼저 디자이너로부터 Figma 파일 을 받아 개략적으로 컴포넌트 를 나누었습니다.
컴포넌트를 section을 기준 으로 나누었습니다. 그리고 section 내에서 재사용 되는 부분들(예를 들어, 단기예보의 탭 등)은 파일 정리 후 만들 예정입니다.
이렇게 나눈 컴포넌트를 기반으로 파일을 정리해 줍니다. (Header.vue는 이전 컴포넌트를 재사용할 것이기 때문에, 새로 만들지 않았습니다.)
부모 컴포넌트(LandingPage.vue) 세팅
LandingPage.vue는 전체적인 레이아웃을 담당하는 컴포넌트 입니다.
mobile 레이아웃 에서 LandingPage는 모달형태로 가장 상단에 표출하기 위해 컨텐츠들의 최상단 에 위치하고 있습니다.
그리고 isLandingOpen이 true일 때 랜딩페이지가 열리도록 설정했습니다.
LandingPage(부모 컴포넌트) 안에는 DashboardVie, GISMapView, ForecastView, GISLayerView, Footer (자식 컴포넌트들)이 포함돼 있습니다.