
피곤한 한주...😓
https://github.com/lovysunny7/mytodolistredux
https://projects.wojtekmaj.pl/react-lifecycle-methods-diagram/
라이프 사이클 함수는 클래스형 컴포넌트에서만 사용한다.
1) useState()
상태 관리는 위한 훅으로써, 값을 넣어두고 참조하기 위한 변수, 값을 바꿔주기 위한 함수를 반환한다.
const [value, setValue] = useState("hello, world"); // state 관리
구조 분해 할당2) useEffect()
컴포넌트의 사이드 이펙트 관리 훅, 화면에서 수정된 후, 화면에서 사라질때 작업
useEffect(() => {
if(is_loaded){ // 화면에 그려질때 (첨, 수정 둘 다) //Mount
window.alert("hi! im ready! ٩(๑•̀o•́๑)و");
}
return () => { // 화면에 사라질때 //Unmount
window.alert("bye!");
}
}, [is_loaded]); // 의존성 배열, 여기 값이 변했을 때 useEffect() 실행 //Update
3) useCallBack()
함수를 메모이제이션 하기 위한 훅
메모이제이션이란 쉽게 말해 메모리 어딘가에 저장해두고 쓴다는 말이며, 함수형 컴포넌트가 리렌더링되면 컴포넌트 안에 선언해둔 함수나 인라인으로 작성한 함수를 다시 한 번 생성하게 되는데 이는 어떤 컴포넌트가 총 10번 렌더링된다면 그 안에 작성해둔 함수들도 10번 만들어지는거고 이건 메모리 관리가 비효율적이게 된다.
useCallBack()은 함수를 메모이제이션해서 여러번 만들지 않게 해주며, 주로 자식 컴포넌트에게 전달해주는 콜백 함수를 메모이제이션할 때 쓴다.
const myNewFunction = useCallback(() => {
console.log("hey!", need_update);
}, [need_update]);
In short, 훅은 한 마디로 클래스형 컴포넌트 기능 합쳐놓은 거라고 생각하면 된다. 그리고 정의 내리는 것에 따라 조금씩 역할이 달라지지만, 사용성은 좀 더 편리하다.