const [target, setTarget] = useState( //기본값 )
setTarget() // >>target을 업데이트 해준다.
//useState() 기본값 설정할때 함수의 리턴값을 받아야한다면
//useState(init()) 컴포넌트가 업데이트 될때마다 계속 init을 호출함
//따라서 useState(()=>init()) 처럼 함수로 한번 감싸주면 한번만 값을 받아옴.
// 인자와 호출하는 내용이 동일하다면 useState(init)으로 가능.
부모컴포넌트에서 자식컴포넌트로 상태값을 전달하는법
props를 사용해서 보내주면 된다.
자식컴포넌트에서 부모컴포넌트로 전달하는법
부모가 자식 컴포넌트 state를 사용하고싶을땐 props로 함수를 보내면 된다.
자식이 부모로부터 받은 함수로 값을 넣어주고 부모는 그 값을 파라미터로 받으면 된다.
여러 컴포넌트에서 상태값을 공유할땐 Context API를 사용할 수 있다.
리액트에서 사용하는 상태는 읽기 전용이다.
중첩된 객체나 배열이 있다고 가정하고 그 상태를 수정해야 할때는 껍데기를 새로 만든 후 수정해야한다.
useImmer를 사용하면 객체를 직접 수정해줘도 알아서 업데이트해준다.
다른 컴포넌트들과 상태를 업데이트하는 로직을 공유하고싶다면 useReducer를 사용하면된다.