오늘 배운 것
Redux
- 리덕스의 특징 / useState 와의 차이점
- 리덕스는 전역상태 관리 라이브러리이다.
- 리덕스는 useState를 통해 상태를 관리했을 때 발생하는 불편함을 일부 해소시켜준다.
- 리덕스는
중앙 State 관리소
를 가지고 있으며, 모든 State는 이곳에서 생성된다.
- useState로 생성한 State는 Local State이고, 리덕스에서 생성한 State는 Global State이다.
- 리덕스 파일 생성 규칙 / 모듈
- 보통 모듈은 기능의 이름을 따서 파일을 생성한다.
- 모듈의 구성요소로는
initialState
, Reducer
가 있다.
- 모듈을 만들면, 스토어에 연결을 해야만 한다. 그리고 연결은
configStore.js
에서 한다.
- 컴포넌트에서 Store를 조회할 때는
useSelector
를 사용해야 한다.
useSelector((state)⇒state)
에서 state
는 모든 모듈의 state 를 조회할 수 있는 값이다.
- 액션객체 / 디스패치 / 리듀서
- 액션객체란, 반드시 type이란 key를 가져야 하는 객체이다. 또한 리듀서로 보낼 “명령"이다.
- 디스패치란, 액션객체를 리듀서로 보내는 “전달자” 함수이다.
- 리듀서란, 디스패치를 통해 전달받은 액션객체를 검사하고, 조건이 일치했을 때 새로운 상태값을 만들어내는 “변화를 만들어내는" 함수이다.
- 디스패치(dispatch)를 사용하기위해서는 useDispatch() 라는 훅을 이용해야 한다.
- 액션객체 type의 value는 대문자로 작성한다. (JS에서 상수는 대문자로 작성하는 룰이 있음)
- 액션 크리에이터
- 액션객체를 만드는 함수를
Action Creator
(액션 크리에이터)라고 한다.
Action Creator
는 모듈 파일안에서 생성된다.
- 액션객체의 type value로 상수로 생성해서 관리한다.
Action Creator
를 사용하면 휴먼에러 방지, 유지보수 효율성 증가, 코드 가독성 등을 잡을 수 있다.