Redux
리덕스는 가장 사용률이 높은 상태관리 라이브러리
리덕스를 사용하면, 여러분이 만들게 될 컴포넌트들의 상태 관련 로직들을 다른 파일들로 분리시켜서 더욱 효율적으로 관리 할 수 있음
또한, 컴포넌트끼리 상태를 공유하게 될 때 여러 컴포넌트를 거치지 않고도 손쉽게 상태 값을 전달 할 수 있음
추가적으로 리덕스의 미들웨어라는 기능을 통하여 비동기 작업, 로깅 등의 확장적인 작업들을 더욱 쉽게 할 수도 있게 해줌
개념 정리
액션(Action)
상태에 어떠한 변화가 필요하게 될 땐, 우리는 액션이란 것을 발생시킴
이는, 하나의 객체로 표현됨
액션 객체는 type 필드를 필수적으로 가지고 있어야하고 그 외의 값들은 개발자 마음대로 넣어줄 수 있음
액션 생성함수(Action Creator)
액션을 만드는 함수
단순히 파라미터를 받아와서 액션 객체 형태로 만들어줌
리듀서(Reducer)
변화를 일으키는 함수
리듀서는 두가지의 파라미터를 받아옴
리듀서는, 현재의 상태와 전달 받은 액션을 참고하여 새로운 상태를 만들어서 반환함
스토어(Store)
리덕스에서는 한 애플리케이션 당 하나의 스토어를 만들게 됨
스토어 안에는 현재의 앱 상태와 리듀서가 들어가있고, 추가적으로 몇가지 내장 함수들이 있음
디스패치(dispatch)
디스패치는 스토어의 내장함수 중 하나임
액션을 발생 시키는 것
dispatch 라는 함수에는 액션을 파라미터로 전달 👉 dispatch(action)
그렇게 호출을 하면, 스토어는 리듀서 함수를 실행시켜서 해당 액션을 처리하는 로직이 있다면 액션을 참고하여 새로운 상태를 만들어줌
구독(subscribe)
구독 또한 스토어의 내장함수 중 하나
subscribe 함수는 함수 형태의 값을 파라미터로 받아옴
subscribe 함수에 특정 함수를 전달해주면, 액션이 디스패치 되었을 때 마다 전달해준 함수가 호출됨
'프로그래밍 > React' 카테고리의 다른 글
SSR과 CSR 비교 (0) | 2021.04.02 |
---|---|
React와 Redux (0) | 2021.04.01 |
to do list 만들기_7 (컴포넌트 최적화) (0) | 2021.03.29 |
to do list 만들기_6 (체크 하기/풀기, 아이템 제거하기) (0) | 2021.03.26 |
to do list 만들기_5 (초기 state 정의와 Form 기능 구현) (0) | 2021.03.25 |