리액트로 상태관리를 하는 방법

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/70f3c357-06c5-4b65-a5c7-110ed8d27e89/Untitled.png

⇒ 계층구조로 인한 상태관리(컴포넌트 refresh)의 어려움.

Mobx Store

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/59ef57d6-4d32-49d2-b7ce-63614c0ffae5/Untitled.png

Mobx를 사용할때에는 observable키워드를 사용하여 State를 관리한다.

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/b81ecefd-7c99-465f-86c3-6926b3cffc33/Untitled.png

  1. setState는 비동기로 동작한다.
function A(){
 setLoading(false);
 alert("로딩이 끝났습니다.");
}
// 대부분의 경우 setLoading이 먼저 수행되나 실제로는 비동기적으로 수행됨.

function B(()=>{
				setLoading(false);
	}){
 alert("로딩이 끝났습니다.");
}
// 콜백함수로 이를 해결
  1. setState는 불필요한 렌더링이 발생한다.

function A(){
	setLoading(true);
}
function B(){
	setLoading(true);
}
// A, B가 순차적으로 수행되었다고 가정하자. A수행 이후 Loading이 true값을 가지나 
// B가 수행되는 경우에도 컴포넌트는 다시 렌더링이된다
  1. setState → setState → setState ?