일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 동적 계획법
- Javascript
- 다이나믹 프로그래밍
- TypeScript
- Graph
- DP
- Redux
- BFS
- vscode
- 자바
- Data Structure
- network
- CS
- git
- 알고리즘
- Algorithm
- VIM
- Python
- react
- frontend
- 리트코드
- 그레이들
- Database
- DFS
- 안드로이드
- 프로그래머스
- 백준
- java
- db
- LeetCode
Archives
- Today
- Total
늘 겸손하게
React - Presentational 컴포넌트 & Container 컴포넌트 본문
서론
React에서 컴포넌트를 Presentational 컴포넌트와 Container 컴포넌트로 나누어 작성할 수 있다.
Presentational 컴포넌트는 무엇이고, Container 컴포넌트는 무엇일까?
또 이렇게 분리했을때 장점이 무엇일까?
Presentational 컴포넌트
UI 담당하는 컴포넌트. 사용자에게 어떻게 보일지에 집중한다.
특징으로는
- 내부에 presentational 컴포넌트와 container 컴포넌트를 가질 수 있다.
- 개인 스타일(css, Markup)을 가지고 있다.
- store, Flux actions 등 앱의 다른 부분에 의존하지 않는다.
- 데이터를 조작하지 않는다.
- props를 통해 데이터 혹은 콜백함수를 전달받는다.
- 대부분 상태(state)를 갖지 않는다. ( 갖는다면 데이터 대신 UI 상태)
- 상태, 생명주기 메소드, 성능 최적화가 필요하지 않는 경우 함수형 컴포넌트로 작성
예 : 페이지, 사이드바, 리스트
Container 컴포넌트
내부 로직을 담당하는 컴포넌트. 앱의 동작에 집중한다.
특징으로는
- 내부에 presentational 컴포넌트와 container 컴포넌트를 가질 수 있다.
- 개인 스타일(css, Markup)을 가지고 있지 않다.
- 다른 container 혹은 presentational 컴포넌트에 데이터, 행위를 전달하는 역할
- Flux action을 호출해 presentational 컴포넌트에 callback으로 전달
- 대부분 상태를 가지고, 데이터 전송 역할 담당
예 : 사용자 페이지, 팔로워 사이드바, 팔로워 목록
이 방식의 장점
- UI와 앱 로직이 분리되어 코드 이해가 수월
- 재사용성 증가. 같은 presentational 컴포넌트에 데이터만 다르게 전달해 다양하게 활용 가능.
- 디자이너가 앱 로직을 건들지 않고 presentational 컴포넌트만 조작 가능해져 협업 쉬워짐.
결론적으로 UI와 데이터 조작 부분을 분리해 코드의 가독성과 재사용성을 높일 수 있다.
출처
https://medium.com/@dan_abramov/smart-and-dumb-components-7ca2f9a7c7d0
'Programming > React' 카테고리의 다른 글
React - 얕은 비교, 깊은 비교 (0) | 2023.10.23 |
---|---|
React : Github-actions로 배포 자동화 (2) | 2023.10.15 |
React - 컴포넌트 기반 아키텍처 (0) | 2023.09.13 |
React - Github-pages에 배포하기 (0) | 2023.07.28 |
React - React에 Redux 설치 & 초기 설정 (0) | 2023.07.27 |