-
Redux스터디노트/Front-end 2021. 11. 18. 11:00
Redux란??
- 컴포넌트들이 state를 쉽게 공유할 수 있게 해주는 방식
- A -> B -> C -> D -> E -> F로 접근 후 F -> E -> D -> C -> B -> A로 돌아오는 패턴을 A -> Store -> F 처럼 효율적인 접근을 가능하게 해준다.
- 2021-11-11 기준 Weekly Downloads 500백만건으로 인기 많다
Action
- 하나의 객체
- State에 변화가 필요할 때 Action을 발생시킨다.
- type이라는 필드를 가지고 있어야한다.
- type : 어떤 동작인지 명시 (ex) "NUMBER_COUNT", "CHANGE_INPUT"...)
Action Creator
- Action을 객체로 만들어주는 함수
export const changeType = (type) => { return { type : TYPE_CHANGE, payload : type }; };
Reducer
- state에 변화를 일으키는 함수
- 현재 state와 Action을 인자로 받아 Store에 접근하여 Action에 맞춰 state를 변경한다.
- return 시 원본 데이터를 변경하지 않는 식으로 리턴 (Immutable)
- 순수함수
- ex) return Object.assign({}, state, {navType: action.payload});
Store
- state, Reducer, 내장 함수등을 가지고 있다.
- View에게 state의 변경 사항을 알려주는 역할
Dispatch
- Reducer를 호출해 state를 변경하는 역할
- 인자로 action을 전달한다.
- ex) dispatch(action)
useSelector()
- 컴포넌트와 state를 연결해주는 역할의 메서드
- 전달인자로 콜백함수를 받으며 콜백함수의 전달인자로 state를 받는다.
useDispatch()
- Action 객체를 Reducer로 전달해주는 역할의 메서드
- 클릭 등의 이벤트
'스터디노트 > Front-end' 카테고리의 다른 글
HTML Tag (progress, meter, summary, picture, datalist) (0) 2022.01.16 React - componentWillReceiveProps(newProps) (0) 2021.12.04 React Life Cycle (0) 2021.11.25 웹 문서화면 이미지 다운로드 (dom-to-image) (0) 2021.11.23