[ReactJS] Presentational 컴포넌트 vs Container 컴포넌트
728x90
반응형
출처 (이 글은 아래 글을 공부하며 요약 정리한 글입니다 + 주석)
redux.vlpt.us/1-2-presentational-and-container-components.html
리액트 창시자 Dan Abramov가 고안한 패턴이다
medium.com/@dan_abramov/smart-and-dumb-components-7ca2f9a7c7d0
다만 2019년도에 추가한 글로는 불필요한 곳에서 사용할 만큼 꼭 지켜야되는 것은 아니라고 설명하고 있다
이 구조에 대한 글을 쓴게 후회될 정도라고..(트위터글 참고 twitter.com/dan_abramov/status/802569801906475008)
프레젠테이셔널 컴포넌트
- View 만을 담당하는 컴포넌트이다 (UI를 작성한다)
- 이 컴포넌트 안에서는 프레젠테이셔널 컴포넌트와 컨테이너 컴포넌트 둘 다 사용할 수 있다
- 리덕스 스토어에 직접적으로 접근하지 않고 props로만 데이터, 함수를 가져온다
- 순수한 컴포넌트로 state를 사용하지 않으며 state가 있을 경우 데이터가 아닌 UI에 대한 state여야 한다.
- 주로 함수형 컴포넌트로 작성된다
컨테이너 컴포넌트
- 다른 프레젠테이션 컴포넌트나 컨테이너 컴포넌트를 관리한다
- 내부에 DOM 엘레멘트를 (UI) 작성하지 않는다 (사용하는 경우 감싸는 용도)
- 스타일을 가지고 있지 않는다
- 스타일은 모두 프레젠테이셔널 컴포넌트 내부에 정의되어야 한다
- 상태를 가지고 있고 리덕스에 직접 접근하여 데이터를 가져온다
- dispatch를 하는 함수를 여기서 구현한다
구조의 장점
- UI와 DATA 부분이 분리되어 관리하기가 쉽고 컴포넌트 재사용하기 좋다
728x90
반응형
'React공부' 카테고리의 다른 글
[React] hooks 만든 동기, 사용하는 이유 요약 (0) | 2021.01.04 |
---|---|
[Redux] Redux 개념과 3가지 규칙 (0) | 2020.11.10 |
[React] 파일 절대 경로 설정 (jsconfig.json) (0) | 2020.10.30 |
[React] 배열 데이터 처리(생성,렌더링, 수정,제거) (0) | 2020.10.21 |
[React] 리액트 undefined처리 방법 (누구든지하는 리액트5편 공부정리) (0) | 2020.10.21 |
TAGS.