Redux

개발빼-엠·2023년 1월 27일
0

배움을 기록

목록 보기
9/47
post-thumbnail

컴포넌트의 갯수가 많지 않을때는 props로도 충분하고, 컴포넌트 갯수가 많더라도 리덕스 없이 개발을 할 수 있지만 리덕스를 사용하면 상태관리 로직을 컴포넌트로부터 분리하여, 표현에 집중한 보다 단순한 함수 컴포넌트로 만들 수 있게 된다.

store는 모든 state를 전역으로 저장, 유지할 수 있게 해준다.

action은 하나의 객체로 필수로 type이라는 키를 갖는다.

그 외의 값들은 마음대로 넣어줄 수 있다.

reducer는 변화를 일으키는 함수로 두가지 인자를 받아온다.

현재의 상태와, 전달 받은 액션을 참고하여 새로운 상태를 만들어서 반환한다.

dispatch는 스토어의 내장함수 중 하나로 액션을 발생 시키는 것이다.

Redux를 통한 상태 관리의 장점

1) 전역 상태 관리에 용이

2) 테스트 붙이기 용이

Redux의 3가지 원칙

1) 애플리케이션 상태는 모두 한 곳에서 관리된다.(store)

2) 상태는 불변(읽기전용)데이터이며, 오직 action만이 상태교체를 요청할 수 있다.(action)

3) 리듀서(순수함수)를 통해 상태의 최종 값만 설정한다.(reducer)

리듀서 함수는 다른 주소값을 가진 새로운 state를 리턴해야한다.(immutable)

리덕스는 리액트 상태관련 라이브러리로 유명하지만, 리액트 없이도 사용이 가능하다.

리듀서는 순수함수다

순수함수의 조건

1) 동일한 인자값을 받으면 항상 동일한 값을 리턴한다.

2) 어디서 호출되든 동일한 결과를 보여준다.

3) 외부에 영향을 주지도 받지도 말아야 한다.

Ation객체는 Dispatch에 전달되고, Dispatch는 Reducer를 호출해서 새로운 state를 생성한다.

Component -> Dispatch(action) -> Reducer -> Store

Component -> state : useSelector

Action -> Reducer : useDispatch

0개의 댓글