You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
container에서 전역 state 및 비동기 호출하는 함수를 만들어 자식 컴포넌트에 내리는 구조를 만든다.
asstes 폴더: 이미지, 전역 스타일을 관리하는 폴더
hooks 폴더: 공통으로 자주 쓰는 hooks를 관리하는 폴더
pages 폴더: container + template + components 를 구성한 페이지
containers를 따로 분리하여 관리하는 구조가 많았지만, 페이지에서 container를 정의하고 사용하는게 더 유지보수적으로 좋다고 생각한다.
container를 다른곳에서 재사용할까? 생각할 때는 현재 프로젝트에서 보이지 않으며 중복성이 보이면 hooks로 관리하는것도 방법이라고 생각한다.
- home
- welcome
- login
- register
components 폴더: atoms, organism, template
utils 폴더: 이전 프로젝트에 common과 같은 성격이라고 생각하면 된다.(명칭 바꿈)
- validation/ => 유효성 검사를 하게 될 때 체크하는 파일을 둔다. validation 사용하는 컴포넌트 파일 이름으로 기준
=> formik같은 유효성 검사 컴포넌트를 사용하게 된다면 상관없지만 현재는 있다고 가정
- http.js // axios같이 HTTP 통신 세팅을 한다.
redux 폴더: api domain, chromAPI domain 명칭에 따른 폴더
해당 폴더 안에는 api, action, rducer, index, saga로 구성한다.
api를 하나로 묶지않고 redux 안에 개별적으로 관리하게 된다면 쉽게 api를 쉽게 찾을 수 있으며, 유지보수 하기가 쉽다고 느껴졌다.
- alarm
- api // return promise
- action
- reducer
- index // export reducer.js, saga.js
- saga
store 폴더: redux의 index들을 묶어 combineReducer와 rootSaga를 만들어 middleware를 구성한 store를 export 한다.
App.jsx: router 정의를 한다.
index.js: provider, store, state를 전역으로 관리할 로직을 모두 포함한다.
React Architecture Desgin
page를 구성할 때
, HistoryItem이 CategoryItem으로 Drag&Drop(DnD)할 때, 각 컴포넌트에 FechData와 state 변화를 주어야 했다.디자인 패턴
을 참고하여 영역을 나누고, 각 컴포넌트의 종속은 redux로 관리하기로 했다.conetextAPI를
사용했지만,redux로
전역 state를 관리하는것과 동시에 비동기 호출을 redux-saga로 유지보수 쉽게 관리가 되는지 리팩토링 작업을 하면서 확인할 계획이다.폴더 구조 시 고려해야할 사항
style
redux
api
리덕스, 리덕스 사가
관리 폴더 구조 생각해야함material-ui
커스텀 해야하는 상황이 생기므로 각각의 컴포넌트 폴더에 추가적으로 생성해야 함Ver1. 폴더 구조
프로젝트 탐색
아토믹 디자인
아토믹 디자인
(원자 - 분자 - 유기체 - 템플릿 - 페이지)Atom
Molecule, Organism => Organism
Template
Page
아토믹으로 적용시 고려해야할 점
폴더 설계
asstes 폴더
: 이미지, 전역 스타일을 관리하는 폴더hooks 폴더
: 공통으로 자주 쓰는 hooks를 관리하는 폴더pages 폴더
: container + template + components 를 구성한 페이지components 폴더
: atoms, organism, templateutils 폴더
: 이전 프로젝트에 common과 같은 성격이라고 생각하면 된다.(명칭 바꿈)redux 폴더
: api domain, chromAPI domain 명칭에 따른 폴더store 폴더
: redux의 index들을 묶어 combineReducer와 rootSaga를 만들어 middleware를 구성한 store를 export 한다.App.jsx
: router 정의를 한다.index.js
: provider, store, state를 전역으로 관리할 로직을 모두 포함한다.결론
참고 사이트
The text was updated successfully, but these errors were encountered: