Frontend 개발자 - hyo.loui
리액트 - 어렵지만 꼭 필요한 'Redux' 본문
❤️🔥TIL : Today I Learned
- 리덕스의 정의
- 리덕스의 핵심요소
- 리덕스의 흐름
Redux 란?
프론트엔드 개발자들은 “리덕스”를 전역 상태관리 라이브러리 라고 많이 표현한다.
전역 상태, 즉 Global State를 의미하고
그것을 관리하게 도와주는 라이브러리 (패키지) 이기 때문이다.
리덕스 핵심 요소
- Action:
State가 변하는것. “무엇이 일어날지” - Reducer:
변화를 일으키는, 즉 데이터(state)를 수정하는 함수. action을 통해 어떠한 행동을 정의했다면, 그 결과 어플리케이션의 상태가 어떻게 바뀌는지는 특정하게 되는 함수이다. - Store:
action과 action에 따라 상태를 수정하는 reducer를 저장하는 어플리케이션에 있는 단 하나의 객체. 스토어는 State 를 수시로 확인해 View 한테 변경된 사항을 알려주는 역할을 한다. - Dispatch:
스토어의 내장 함수 중 하나로 리듀서에게 Action 을 발생하라고 시키는 것 store에서 reducer함수를 실행시켜 state를 업데이트한다. - Subscribe:
액션이 디스패치 될 때 마다 전달해준 함수를 호출한다. - Middleware: 액션을 디스패치 했을때 리듀서에서 이를 처리하기에 앞서 사전에 지정된 작업들을 실행한다.
thunk 와 saga 가 대표.
useState로 생성한 State는 Local State 이고,
리덕스에서 생성한 State는 Global State 이다.
리덕스의 흐름 (cycle 구조)
- View 에서 액션이 일어난다.
- dispatch 에서 action이 일어나게 된다.
- action에 의한 reducer 함수가 실행되기 전에 middleware가 작동한다.
- middleware 에서 명령내린 일을 수행하고 난뒤, reducer 함수를 실행한다. (3, 4번은 아직 몰라도 됩니다!)
- reducer 의 실행결과 store에 새로운 값을 저장한다.
- store의 state에 subscribe 하고 있던 UI에 변경된 값을 준다.
최종 정리
- 리덕스는 useState를 사용했을 때 발생하는 불편함, props Drilling 문제를 해소하는 전역상태 관리 라이브러리
- 리덕스에서 생성한 State는 Global State
- action >> dispatch >> middleware >> reducer 실행 >> store 저장 >> UI 변경
'React.js' 카테고리의 다른 글
리액트 - React를 Redux로 전역 상태관리를 해보자 (0) | 2022.12.17 |
---|---|
리액트 - Prop Drilling (redux를 사용해야 하는 이유 ) (1) | 2022.12.17 |
리액트 - pathname 에러 (Router) (0) | 2022.12.15 |
리액트 - todo-list (코드 리뷰) (2) | 2022.12.14 |
리액트 - Cannot update a component 에러 (1) | 2022.12.13 |