마침내 2편 내용을 정리할 시간이다.
1장. 컨택스트
- 프롭 드릴링 현상을 리액트 컨택스트로 해결
- MyReact로 컨택스트 직접 구현
- 이벤트 에미터 패턴으로 멀리 떨어진 객체간에 메세지 교류
- createContext로 이벤트 에미터를 사용한 리액트 컨택스트 객체 생성
- 공급자, 소비자 컴포넌로 리액트 컴포넌트에서 사용
2장. 라우터 1
- 리액트 컨택스트를 활용 첫 번째
- 라우팅 개념
- Router: 라우트 상태를 저장하기 위해 리액트 컨택스트를 만들고 여기에 데이터를 제공
- Link: 브라우져의 하이퍼링크 기본동작을 막고 요청 주소에 따라 컨택스트의 상태를 변경
- Routes: 상태에 따라 해당 리액트 앨리먼트를 찾아 렌더
- Route: 요청 경로와 렌더링할 컴포넌트 사전. 선언적 코딩
3장. 라우터 2
- 히스토리 api, popstate. 브라우져 탐색 기능 지원
- 라우트 컨택스트의 컨슈머 컴포넌트를 래핑해 사용하는 코드가 장황
- 고차 컴포넌트 패턴: 횡단 관심사 해결, 라우팅은 횡단 관심사
- withRouter: navigate, match, params 함수를 컴포넌트에 제공
4장. 다이얼로그 1
- 리액트 컨택스트 활용 두 번째
- 어플리케이션 전반에서 사용하기 때문에 컨택스트로 관리.
- 고차컴포넌트로 다이얼로그 제어 함수를 주입
- 컴포넌트 조합: 로딩 다이얼로그, 오류 다이얼로그, 주문 성공 다이얼로그
5장. 다이얼로그 2
- 스타일 상속 문제. 리액트 포탈로 해결
- 다이얼로그 기본 버튼 포커싱. 리액트 레프로 개선
--
1, 2편에 걸쳐 요구사하을 모두 해결했다.
후반부는 리액트 훅을 다룬다.