본문 바로가기
{React}

11.16.22{코딩일기}벨로퍼트와 함께하는 모던리액트 6-1 챕터리뷰

by Davey 2022. 11. 16.
728x90

[ 새롭게 알게 된 것 ]


1. 리덕스엔 useReducer와 동일한 개념이 적용되어 있다


대표적으로 액션객체라는 것이 있다.

액션객체란 상태에 어떤 변화가 필요할 때 하나의 객체로 표현한 것이며 형식은 아래와 같다.

액션 객체는 type필드를 필수적으로 가지고 있어야 하고, 그 외에는 커스터마이징 하면 된다.

{
  type: "ADD_PROFILE",
  data: {
    id: 0,
    name: "bluevulpe"
  }
}

액션함수는 파라미터를 받아와서 위 액션객체 형태를 리턴하는 함수를 의미한다.

액션함수의 용도는 컴포넌트에서 더욱 쉽게 액션을 발생시키기 위함이기 때문에 함수 앞에 export 키워드를 붙인다.


 

2. Redux 리듀서는 useReducer를 사용할 때와 동일한 형태를 갖추고 있다


 리듀서는 두가지의 파라미터를 받아와 현재의 상태와 전달받은 액션을 참고하여 새로운 상태를 반환한다.

이는 기존 useReducer와 동일한 형태이다.

하지만 useReducer에선 default: 부분에 에러를 발생시키도록 처리하는 반면에,

리덕스의 리듀서에서는 기존 state를 그대로 반환하는 점이 차이점이다.


3. 리덕스에선 한 애플리케이션당 하나의 스토어를 만들게 된다


스토어 안에는 현재 앱상태와 리듀서가 들어가 있고, 추가적으로 내장함수가 포함되어 있다.


 

4. 디스 패치는 스토어의 내장 함수 중 하나이다


디스패치는 액션을 파라미터로 전달 해줘야한다. ex dispatch(action)

디스패치 함수를 호출하면 스토어는 리듀서 함수를 실행시킨 후,

해당 액션을 처리하는 로직이 있다면 그 액션을 참고해 새로운 상태를 만들어준다.


 

5. subscribe 함수 또한 스토어의 내장 함수 중 하나이다


subscribe 함수는 함수 형태의 값을 파라미터로 받게 된다.

해당 파라미터 함수는 액션이 디스패치 되었을 때마다 호출된다.

하지만 실재로 이 함수를 사용하는 일은 드물다고 한다.

대신 connect 함수 또는 useSelector 훅을 사용하여 리덕스 스토어의 상태에 subscribe대신 구독한다고 한다.


728x90

댓글