팀 프로젝트 3분 읽기

Pre-Project DAY 7,8

페이지를 담당하는 컴포넌트들이 중복되는 컴포넌트들을 가지고 있는 경우가 있다. 특히, 사이드 바가 그렇다. 이건 어느 웹 사이트나 마찬가지일 것이다. 이때 사용할 수 있는 방법이 리액트 라우터에서 네스팅 방식을 사용하는 것이다. 그렇게 했을 때 <Outlet /컴포넌트...

📌 프리 프로젝트 7일차

🪢 컴포넌트 컴포지션

페이지를 담당하는 컴포넌트들이 중복되는 컴포넌트들을 가지고 있는 경우가 있다. 특히, 사이드 바가 그렇다. 이건 어느 웹 사이트나 마찬가지일 것이다. 이때 사용할 수 있는 방법이 리액트 라우터에서 네스팅 방식을 사용하는 것이다. 그렇게 했을 때 <Outlet />컴포넌트를 이용하여 바뀌는 부분만 갈아끼우는 방법으로 중복된 컴포넌트를 사용할 수 있다.

우리가 만드는 페이지 역시 그런 경우가 많았다. 하지만, 다른 점이 왼쪽 네비게이션이 있지만, 오른쪽 어사이드바는 없는 경우도 있고, 푸터가 없는 경우도 있고, 그랬다. 즉, 하나의 템플릿 페이지와 <Outlet />으로는 처리가 힘들었다. 그래서 사용한 방법이 컴포넌트 컴포지션이었다.

아래는 템플릿을 담당하는 컴포넌트다.

템플릿의 경우 필요한 페이지만 적용을 할 것이고, 그 페이지들은 필수적으로 푸터, 사이드바를 포함한다.

아래의 사진은 모든 라우터 데이터이다. 템플릿이 필요한지 그렇지 않은지를 따로 관리하고 있다.

라우팅은 아래와 같이 작성했다. 로그인 기능은 구현되지 않았기 때문에 임시로 해놓았다.

📌 프리 프로젝트 8일차

💻 json server

json server를 이용해서 목업 서버를 구현했다.

백엔드에서 전달받은 데이터베이스 ERD는 다음과 같다.

이를 기반으로 db.json을 구성했다.

서버 커스터마이징을 하려고 했지만, lowdb를 불러올 때 esmodule방식을 지원을 안해서 그런지 실패했다.

json server를 사용하려면 다음과 같이 하면된다.

$ cd ./client
$ json-server --watch db.json --port 3001