redux
- 상태 관리 라이브러리
- 컴포넌트끼리 상태를 공유해야 할 때 여러 컴포넌트를 거치지 않고 상태값을 전달 or 업데이트 가능
액션
- 상태에 변화가 필요하면 액션이 발생함
- 객체로 표현되며 type 필드를 가지고 있어야 함
액션 생성 함수
리듀서
- 변화를 일으키는 함수
- 액션을 만들어서 발생시키면 리듀서가 현재 상태와 전달받은 액션 객체를 파라미터로 받아와 새로운 상태를 만들어 반환
루트 리듀서
: 스토어를 만들 때는 리듀서를 하나만 사용해야 하므로 기존에 만들었던 리듀서를 하나로 합쳐줌
- combineReducers 유틸 함수 사용
스토어
- 상태가 관리되는 하나의 공간
- 프로젝트에 리덕스를 적용하기 위해 스토어를 만듬
- createStore 사용
const store = createStore(rootReducer);
프레젠테이셔널 컴포넌트
- props를 받아와 화면에 UI를 보여주기만 하는 컴포넌트
컨테이너 컴포넌트
- 리덕스와 연동되어 있는 컴포넌트
- 리덕스로부터 상태를 받아오기도 하고, 액션을 디스패치하기도 함
Flux Pattern
- 디스패처, 스토어, 뷰로 구성
- 단방향 데이터 흐름
리덕스 3가지 원칙
- Single source of truth
- State is read-only
- changes are made with pure functions
Redux hooks
useSelector
const 결과 = useSelector(상태 선택 함수);
useDispatch
- 리덕스 스토어의 dispatch를 함수에서 사용할 수 있게 해주는 Hook
const dispatch = useDispatch();
dispatch({ type: 'SAMPLE_ACTION' });
참고 https://react.vlpt.us/redux/01-keywords.html
와 정말 좋네요!