Redux 소개
리덕스 (Redux) : 전역 상태관리 라이브러리, 중앙 데이터 관리소를 사용할 수 있게 도와주는 패키지(라이브러리)
리덕스 사용 전 | 리덕스 사용 후 | |
한줄요약 | state 를 사용해 데이터를 관리 | 리덕스를 통해 중앙 데이터 관리소에서 데이터 관리 |
작동방법 (state 값 전달) |
Props를 통해 부모->자식 컴포넌트로 state값 전달 | 모든 엘리먼트가 리덕스에 접근 -> state 조회 -> state 업데이트 |
특징 | 👎 부모-자식 관계 사이에서만 state 보내기 가능 👎 조부모-자식으로 가려면, 부모단계를 꼭 거쳐야 함 👎 자식-부모로 bottomUp 방식으로는 불가 |
👍 부모관계 상관없이 state 공유 및 보내기 가능 👍 중간에 의미 없이 컴포넌트를 거치지 않았도 됨 👍 자식컴포넌트에서 만든 state를 부모 컴포넌트에서도 사용 가능 |
여기서 잠깐
우리는 ContextAPI 를 통해 이미 Props 를 통한 state 값 전달을 개선하는 방법을 배웠다.
하지만 Context API 도 단점이 있었다.
Provider에서 제공한 value가 달라진다면(state가 변경되면) useContext를 사용하고 있는 모든 컴포넌트가 리렌더링 되는 것!
그렇기때문에 상태관리 라이브러리로서 조금 부족한 부분이 있는 것이 사실이다.
Global State / Local State
Global State (전역상태)
: 컴포넌트에서 생성되지 않고, 중앙화된 특별한 곳에서 state들이 생성된다. "중앙 state 관리소". 후에 새롭게 이용할 리덕스에서 생성한 state는 Global State 가 된다.
Local State (지역상태)
: 컴포넌트에서 useState를 이용해 생성한 state이다. 좁은 범위 안에서 생성된 state.
728x90
반응형
'부트캠프 개발일지 2023-2024 > React 리액트' 카테고리의 다른 글
[6주차] 리액트숙련: Redux 로 카운터 만들기 - useDispatch (0) | 2023.11.09 |
---|---|
[6주차] 리액트숙련: Redux 설치, 초기설정 (0) | 2023.11.09 |
[6주차] 리액트숙련: 가상DOM (Virtual DOM) (0) | 2023.11.09 |
[6주차] 리액트숙련: React Hooks - 최적화(React.memo, useCallback, useMemo) (0) | 2023.11.08 |
[6주차] 리액트숙련: React Hooks - useContext(Context API) (0) | 2023.11.08 |