일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- alias설정
- tailwindCSS
- CustomHook
- react
- 문제해결
- 리액트
- 함수형프로그래밍
- es6
- BFC
- 부모패딩
- Carousel
- BlockFormattingContext
- 조건부스타일
- ignore padding
- createPortal
- twoarrow
- vite
- useQueryClient
- QueryClient
- debouncing
- ㅡ
- DOM
- parent padding
- 제어컴포넌트
- 부모요소의 패딩 무시
- ?? #null병합연산자
- transition
- accordian
- 서초구보건소 #무료CPR교육
- 화살표2개
- Today
- Total
프론트엔드 첫걸음
[Redux Toolkit Tutorial] Cake shop Scenario 본문
Redux Toolkit Tutorial 2-4강
npm init -y
package.json 파일 생성
npm install redux
redux package 설치
이 강의에서는 케잌샵 시나리오를 리덕스에 비유한다.
Entities | Activities |
샵 - 선반에 케이크를 저장 주인 - 카운터에 있음 손님 - 매장 입구에 있음 |
손님 - 케이크를 주문함 주인 - 선반에서 박스를 포장함 (케이크 재고 파악등을 위해 ) 영수증을 만든다 |
리덕스 핵심개념
리덕스의 핵심개념을 케잌샵 시나리오에 비유하여 설명한다.
케이크 샵 시나리오 | Redux | 목적 |
샵 - 케이크를 안전하게 보관 | Store - 애플리케이션의 State를 안전하게 유지한다. | 애플리케이션의 State를 안전하게 유지한다. |
케이크 주문 - 어떤 케이크 몇 개인지, 주문을 받는다. | Action - 시나리오에서 발생한 일을 설명 | 무슨일이 일어났는지 설명 |
샵 주인 - 주문을 받아서 케이크를 선반에서 빼내고, 다음 주문을 위해 재고 추적 | Reducer - action을 받아서 store를 수정 | Store와 action을 연결 |
리덕스의 3가지 원칙
1. 앱의 전역상태는 하나의 저장소안의 단일 객체 내부에 저장된다.
{
numberOfCakes : 10
}
2. 상태를 변경하는 유일한 방법은 무슨일이 일어났는지를 설명하는 객체인 액션(주문)을 dispatch함으로써 이루어진다.
state 객체를 직접적으로 update할 수 없다.
손님은 케이크 선반으로 직접 들어가서 케이크를 꺼내올 수 없다.
QR코드를 스캔해서 주문할 수 있다
{
type : 'CAKE_ORDERED'
}
3. 액션에 기반한 상태트리 업데이트를 구체화하기 위해 순수 리듀서를 작성해야한다.
Reducer - (previousState, action) => newState
Shop주인은 Reducer, 초기상태와 주문을 받아서 현재 케이크 상태 수정
const reducer = (state= initialState, action) =>{
switch(action.type) {
case CAKE_ORDERED :
return {
}
}
}
1. javascript 앱은 Redux Store를 구독하지만 앱은 직접 상태를 업데이트 할 수 없다.
2. 앱이 State를 업데이트하고 싶으면 액션을 dispatch해야한다.
3. action이 reducer에게 dispatch전고, redux가 state를 업데이트한다.
4. 앱이 store를 구독하고 있기 때문에, state가 업데이트 되면 업데이트 된 값이 javascript앱에 전달된다.
Redux Store의 책임
- 애플리케이션 state를 유지하며 항상 하나의 저장소만 가진다.
- state에 접근할 때는 getState()를 통한다
- state 변경할때는 dispatch(action)을 통한다.
- subscribe 메소드로 store를 구독하게 하고, subscribe 메소드에 리턴된 함수를 호출하여 구독을 취소할수도 있다.
'개발 공부 > React' 카테고리의 다른 글
리덕스 관련 코드 작성하기 (0) | 2022.09.04 |
---|---|
[Redux Toolkit Tutorial] bindActionCreator (0) | 2022.09.03 |
Redux Toolkit 이해하기 - vanila javascript에서 써보기 (0) | 2022.08.31 |
[문제해결] 중괄호와 괄호 헷갈리지 않게 잘 쓰기 (0) | 2022.08.30 |
ContextAPI (0) | 2022.08.30 |