트리 구조인 Dom 에서 하나의 하위 항목을 수정할때마다 모든 데이터를 찾는 방식은 비효율적이다. 따라서 메모리위에서만 존재하는 가짜 DOM이 존재.
컴포넌트는 Mount -> update ->unmount 순서로 된다
render : 가상Dom 에서 Dom으로 변경사항을 올리는 행위
render가 완료된것을 mount 됐다고 한다.
요즘은 함수형 컴포넌트로 많이 쓰고 있는 추세이지만 이미 만들어져있는 프로젝트들이 클래스형 함수로 만들어진것들도 있음으로 생김새는 알아야 한다.
1) 클래스형 컴포넌트
2) 함수형 컴포넌트
1) useState
state를 추가해주는 hook이다. state는 화면과 관련된 데이터를 다룰 때 쓴 다.
2)useEffect
컴포넌트가 렌더링이 될때마다 어떤 함수를 실행한다.
전역상태저장소 (상태=데이터)
데이터는 부모데이터에서 자식데이터로 흐르는게 제일 좋은데 부모데이터를 바꿔줘야 할 때 상태관리가 유용하다.
데이터는 부모데이터에서 자식데이터로 흐르는게 제일 좋기때문에 별도의 전역상태저장소만들어 state를 가져와 쓰면 자식데이터가 부모의데이터를 건드리지 않고 쓸수 있다. 또한 props drilling 상태에서도 쓰기 유용하다.
1) store는 1개만 쓴다.
2) store의 state는 오직 action으로만 변경할 수 있다.
3) 어떤 요청이 와도 리듀서는 같은 동작으로 해야한다.