3. Redux 따라하기
Redux
상태 컨테이너
상태 관리를 컴포넌트 바깥에서 해서 prop driling을 막을 수 있음
리덕스 스토에에 상태 데이터들이 담겨있음
컴포넌트는 스토어를 구독함. 이 때 특정함수를 스토어에 전달하고 나중에 스토어 상태값에 변동이 생기면 전달받았던 함수를 호출해줌
subscribe(listener)
컴포넌트에서 상태를 변경하고 싶을 때
dispatch
함수를 통해서 액션(어떤일을 할지 나타내는 객체)을 스토어에 던져줌스토어의 리듀서가 상태를 변경시킴
상태변화가 생기면 구독중이던 컴포넌트들에
listen
함수 호출하여 상태가 변경되었으니 리렌더링 하라고 알림
Reflect
프록시 생성을 단순화하는 내장 객체
내장 메서드를 호출하는 방식의 일관된 방법으로 기존 메서드를 사용할 수 있음
Reflect.get
은 객체 프로퍼티를 읽음Reflect.set
은 객체 프로퍼티에 값을 쓰고 성공 시 true, 실패 시 false를 반환
Proxy
특정 객체를 감싸 프로퍼티 읽기 및 쓰기와 같은 객체에 가해지는 작업을 중간에 가로채는 객체로 사용
target
: 감싸게 될 객체로, 함수를 포함한 모든 객체가 가능handler
: 동작을 가로체는 메서드trap
이 담긴 객체로, 이곳에서 proxy의 동작을 처리Proxy는 일반객체와 다른 특수객체(exotic object)로, 자체적으로 가지는 프로퍼티가 없음
자바스크립트에 객체에 어떤 작업을 수행하면 자바스크립트 명세서에 정의된 내부 메서드가 관여하게 됨
프록시의 트랩은 내부 메서드의 호출을 가로챌 수 있음
Last updated