일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 스프린트 여정 마침
- 리액트 19 useref
- dynamic metadata
- type reference cannot be named error
- 코드잇 스프린트 FE 1기
- inferred type error
- 리액트로 채팅 기능 구현하기
- usemutation custom hook
- app.listen
- express react
- express로 채팅 기능 구현하기
- css module classNames
- http.createserver
- useref 타입
- 회고
- useimperativehandle 사용할때
- 특정 dom node만 노출시키고 싶을 때
- components as formulas
- CSS module 장점
- 이미지 업로드 과정
- 프리렌더링
- 리스티웨이브
- 티스토리챌린지
- React
- node.js(express) + ws(websocket) + react
- 오블완
- pure functions
- trigger additional callbacks
- useimperativehandle 사용법
- next.js
Archives
- Today
- Total
Life is connecting the dots .
[React] container and presenter pattern 본문
1. container and presenter patton 이란
- React 디자인 패턴 중의 하나로 하나의 페이지 컴포넌트를 기능과 UI구현의 컴포넌트로 나눠 작성하는 것이다.
- export와 import로 부모 컴포넌트와 자식 컴포넌트를 연결하며 최종 부모 컴포넌트는 _app.js의 App이다.
presenter component (= presentational component)
- JSX 가 담겨있는 컴포넌트로 UI 부분을 구현한다.
- container component가 전달하는 prop를 사용한다.
container component
- 자바스크립트 로직이 담겨있는 컴포넌트로 기능 부분을 구현한다.
- 마크업이나 스타일을 사용하지 않는다.
import와 export
기능별로 컴포넌트를 나누었지만 실행할 때는 하나의 페이지에서 합쳐져서 실행되어야 한다.
즉, container component를 pages 내부 index에 import 해주어야 제대로 된 하나의 페이지가 보인다.
2. 리액트의 데이터 전달 방식 props
- props를 사용하여 폴더 간 데이터를 주고받을 수 있다.
- 위의 코드에서도 알 수 있듯이 리액트는 단방향(부모 컴포넌트가 자식 컴포넌트에게) 으로 내부 변수와 함수를 전달한다.
반대로 자식 컴포넌트에서 부모 컴포넌트로의 전달은 불가능하다.
단방향 구조이므로 에러를 찾아내기가 더 쉽고, 흐름을 파악하기 수월하다.
3. 요약
- container and presenter 디자인패턴을 적용하여 체계적인 폴더구조를 만들 수 있다.
- export와 import를 통해 component 간 부모-자식 관계 파악에 용이하며 코드가 간결해진다.
- 컴포넌트별로 기능이 동작하므로 리팩토링과 유지보수에 용이하다.
'Programming > React' 카테고리의 다른 글
이미지 업로드 기능 사용성[UI/UX] 개선 (0) | 2023.09.01 |
---|---|
React Query - 서버 상태 관리 라이브러리 (0) | 2023.08.11 |
React를 사용하는 이유 (0) | 2023.08.04 |
Context API - 리액트에서 데이터를 다루는 방법 (0) | 2023.07.25 |
React Router로 라우팅하기 (0) | 2023.07.16 |