[리액트 2부] 2편 최종정리

마침내 2편 내용을 정리할 시간이다.

1장. 컨택스트

  • 프롭 드릴링 현상을 리액트 컨택스트로 해결
  • MyReact로 컨택스트 직접 구현
  • 이벤트 에미터 패턴으로 멀리 떨어진 객체간에 메세지 교류
  • createContext로 이벤트 에미터를 사용한 리액트 컨택스트 객체 생성
  • 공급자, 소비자 컴포넌로 리액트 컴포넌트에서 사용

2장. 라우터 1

  • 리액트 컨택스트를 활용 첫 번째
  • 라우팅 개념
  • Router: 라우트 상태를 저장하기 위해 리액트 컨택스트를 만들고 여기에 데이터를 제공
  • Link: 브라우져의 하이퍼링크 기본동작을 막고 요청 주소에 따라 컨택스트의 상태를 변경
  • Routes: 상태에 따라 해당 리액트 앨리먼트를 찾아 렌더
  • Route: 요청 경로와 렌더링할 컴포넌트 사전. 선언적 코딩

3장. 라우터 2

  • 히스토리 api, popstate. 브라우져 탐색 기능 지원
  • 라우트 컨택스트의 컨슈머 컴포넌트를 래핑해 사용하는 코드가 장황
  • 고차 컴포넌트 패턴: 횡단 관심사 해결, 라우팅은 횡단 관심사
  • withRouter: navigate, match, params 함수를 컴포넌트에 제공

4장. 다이얼로그 1

  • 리액트 컨택스트 활용 두 번째
  • 어플리케이션 전반에서 사용하기 때문에 컨택스트로 관리.
  • 고차컴포넌트로 다이얼로그 제어 함수를 주입
  • 컴포넌트 조합: 로딩 다이얼로그, 오류 다이얼로그, 주문 성공 다이얼로그

5장. 다이얼로그 2

  • 스타일 상속 문제. 리액트 포탈로 해결
  • 다이얼로그 기본 버튼 포커싱. 리액트 레프로 개선

--

1, 2편에 걸쳐 요구사하을 모두 해결했다.

후반부는 리액트 훅을 다룬다.