반응형
리덕스 ?
리액트에서 사용률이 높은 상태관리 라이브러리이다.
상태관련 로직들을 다른파일로 분리하여 효율적으로 관리 할수있으며 글로벌 상태 관리도 쉽게 할수있다.
Context API 와 useReducer Hook 을 사용해서 개발하는 흐름과 리덕스는 굉장히 유사 하다.
Context API 와 차이점 ?
1. 미들웨어
리덕스에는 미들웨어라는 개념이 있다.
미들웨어를 통해서 액션 객체가 리듀서에서 처리되기 전에 원하는 작업을 수행할수있도록 만들수있다.
- 특정 조건에따라 액션이 무시됨
- 액션을 콘솔에 출력하거나 , 서버에 로깅할수있음
- 액션이 디스패치됐을대 이를 수정해서 리듀서에 전달할수있음
- 특정 액션이 발생했을때 다른액션을 발생하게할수있음
- 특정 액션이 발생했을때 특정자바스크립트 함수를 실행시킬수있다.
주로 비동기 작업을 처리할때 사용된다.
2. 유용한 함수 , Hook 사용가능
connect 함수를 사용해 리덕스 상태 또는 액션 생성함수를 컴포넌트의 props 로 받아올수있다
useSelector, useDispatch, useStore 과 같은 Hooks를 사용하면 손쉽게 상태를 조회하거나 액션을 디스패치 할 수 있음
3. 하나의 커다란 상태
모든 글로벌 상태를 하나의 커다란 상태 객체에 넣어 사용한다.
리듀서 사용할때 키워드
- 액션 (Action)
- 상태에 변화가 필요할 때 발생시킴 (객체하나로 표현)type을 필수로 그외의 값들은 개발자 마음대로 생성
- 액션 생성함수 (Action Creator)
- 컴포넌트에서 더욱 쉽게 액션을 발생시키기 위함필수 아님
- 리듀서 (Reducer)
- 변화를 일으키는 함수현재의 상태와 액션을 참조하여 새로운 상태를 반환
- 스토어 (Store)
- 한 애플리케이션당 하나의 스토어현재의 앱 상태와, 리듀서, 내장함수 포함
- 디스패치 (dispatch)
- 스토어의 내장함수액션을 발생 시키는 것
반응형
'프론트엔드 > React' 카테고리의 다른 글
[32] 리액트 라우터 v6 (0) | 2022.12.16 |
---|---|
[31] 리액트 리덕스 #2 (0) | 2022.12.15 |
[29] 리액트 useEffect (0) | 2022.12.09 |
[28]리액트 ref 와 state (1) | 2022.12.09 |
[27] 리액트 동적스타일 (0) | 2022.12.08 |