728x90
반응형
틱택토
리덕스의 핵심인 useReducer
리덕스의 대부가 리액트 팀에 합류를 하면서 많은 개념을 가져왔다.
하지만 소규모 앱에서는 리덕스 라이브러리 대신 useReducer와 contextAPI를 쓸 수 있지만, 큰 규모의 비동기 작업에는 리덕스를 쓰는 것이 효율적이다.
※ 승자가 나올수 없는 게임 틱택토
Structure
TicTacToe.jsx → Table → tr → td (state는 틱택토에서, 클릭하는 건 td에서 관리한다.)
state가 많아질수록 관리가 힘들어지기 때문에 useReducer를 쓴다.
reducer, action, dispatch의 관계
- state안에 데이터가 있다면 직접 수정 불가능하다.
- 수정시 action을 만들어서 수정
- action을 만든 후 dispatch에 하면 state 수정
- reducer : state를 어떻게 바꾸는 지를 switch 문을 사용
현재는 Tr → Td → Table → TicTacToe 순으로 데이터가 넘겨지는 데, Context API로 이 과정을 좀 더 간단하게 할 수 있다.
지뢰찾기 💣
리덕스의 contextAPI
다층 관계에서 부모 X 컴텍스트 API에서 값을 직접적으로 가져올 수 있다.
createContext와 Provider
- createContext()함수를 사용하여 Context 만들기
- Context API의 데이터를 접근해야 하는 하위 컴포넌트를 return 안에서 Provider로 감싸기
- 전달할 데이터는 value={}
- contextAPI는 성능 최적화가 힘들기 때문에 useMemo()로 객체값을 기억하여 캐싱
반응형
'React & React Native' 카테고리의 다른 글
JavaScript 문자열 반으로 나누기 && 특정 문자 포함시 들여쓰기 (\n) (0) | 2021.08.09 |
---|---|
생활코딩 - Redux (0) | 2021.08.04 |
템플릿 리터럴 Template Literal과 조건문 함수 (0) | 2021.07.30 |
웹 게임을 만들며 배우는 React 가위바위보 & 로또 추첨기 (0) | 2021.07.24 |
[토이프로젝트] XD디자인 와이어프레임부터 출시까지 -3 (0) | 2021.07.17 |