본문 바로가기
부트캠프교육중/react

Redux 1

by 뭉지야 2023. 2. 24.
728x90

리액트에서는 상태와 속성(props)을 이용한 컴포넌트 단위 개발 아키텍처를 배웠다면
리덕스에서는 컴포넌트와 상태를 분리하는 패턴을 배웁니다.

리덕스는 리액트의 관련 라이브러리, 혹은 하위 라이브러리라는 대표적인 오해가 있는데 전혀 그렇지 않다
리덕스는 리액트 없이도 사용할수있는 상태 관리 라이브러리이다.

 

컴포넌트3, 컴포넌트6에서만 사용되는 상태가 있다고 합시다.
저런 상태 배치는 비효율적이다
1. 해당 상태를 직접 사용하지 않는 최상위 컴포넌트, 컴포넌트1, 컴포넌트2도 상태 데이터를 가짐
2. 상태 끌어올리기, Props 내려주기를 여러 번 거쳐야 함
3. 애플리케이션이 복잡해질수록 데이터 흐름도 복잡해짐
4. 컴포넌트 구조가 바뀐다면, 지금의 데이터 흐름을 완전히 바꿔야 할 수도 있음

이러한 문제를 redux는 전역 상태를 관리할수있는 저장소인 store를 제공함으로써 해결해준다.

 

# Redux의 구조
1.상태가 변경되어야 하는 이벤트가 발생하면, 변경될 상태에 대한 정보가 담긴 Action 객체가 생성됩니다.
2.이 Action 객체는 Dispatch 함수의 인자로 전달됩니다.
3.Dispatch 함수는 Action 객체를 Reducer 함수로 전달해줍니다.
4.Reducer 함수는 Action 객체의 값을 확인하고, 그 값에 따라 전역 상태 저장소 Store의 상태를 변경합니다.
5.상태가 변경되면, React는 화면을 다시 렌더링 합니다.

즉, Redux에서는 Action → Dispatch → Reducer → Store 순서로 데이터가 단방향으로 흐르게 됩니다.

 

728x90

'부트캠프교육중 > react' 카테고리의 다른 글

Redux Hook  (0) 2023.02.24
Redux 2  (0) 2023.02.24
useRef  (1) 2023.02.23
상태관리  (0) 2023.02.23
Storybook  (0) 2023.02.22