TIL - 리덕스(Redux) (1)

MinWoo Park·2021년 3월 13일
0

TIL

목록 보기
22/49
post-thumbnail

Today I Learned

매일 배운 것을 정리하며 기록합니다. Redux 공부하였습니다.


Redux

  • 리액트 상태 관리 라이브러리
  • 컴포넌트의 상태 업데이트 관련 로직을 다른 파일로 분리시켜서 효율적으로 관리
  • 컴포넌트끼리 똑같은 상태를 공유할 때 여러 컴포넌트를 거치지 않고 전달하거나 업데이트 가능
  • 미들웨어 기능을 통해 비동기 작업을 효율적으로 관리

(개인적인 생각입니다만 네이밍이 리덕스인 이유는 리덕스를 사용하면 상태 관리를 컴포넌트 외부에서 하니까(프레젠테이세녈 컴포넌트/컨테이너 컴포넌트) '외부에서 돌아온' 이런 의미에서 redux라는 이름이 붙여진게 아닐까? 생각해봅니다.)


액션(action)

  • 상태에 어떤 변화가 필요하면 발생하는 객체
  • type 필드를 반드시 갖음

액션 생성 함수(action creator)

  • 액션 객체를 만들어 주는 함수
  • 변화를 일으킬 때 마다 액션 객체를 만드는 번거로움을 해결

리듀서(reducer)

  • 변화를 일으키는 함수
  • 현재 상태와 액션 객체를 인자로 받아, 두 값을 참고하여 새로운 상태를 만들어서 반환

스토어(store)

  • 리덕스를 적용하기 위해 사용
  • 한 개의 프로젝트에는 하나의 스토어만 존재
  • 스토어 안에는 상태, 리듀서, 디스패치(dispatch), 구독(subscribe) 등 중요한 내장 함수를 지님

디스패치(dispatch)

  • 액션을 발생시키는 함수
  • dispatch(action)과 같은 형태로 액션 객체를 파라미터로 넣어서 호출
  • 디스패치가 호출되면 스토어는 리듀서 함수를 실행시켜서 새로운 상태를 만듦
  • dispatch(action) -> reducer(state, action) -> new state

Reference : 김민준(VELOPERT), 『리액트를 다루는 기술』, 길벗 (2019), p414-416.

profile
물음표를 느낌표로 바꾸는 순간을 사랑하는 개발자입니다.

0개의 댓글