두번째 성능 개선 방법(재랜더링 방지)

function Child() {
    return <div>Child</div>
}

function Parent() {
    let [count, setCount] = useState(0);
    return (
    <div>
    	<Child></Child>
        <button onClick={()=>{ setCount(count+1)}}>+1</button>
    </div>
    )
}

그렇다면 어떻게 해결할 수 있을 것인가.

import { memo } from "react"

let Child = memo ( function Child() { // 변수에 집어넣고 함수는 memo로 감싸면된다.
    return <div>Child</div>
})

Memo의 정확한 원리

참고2. useMemo

//예를들면
function 함수() {
    return 반복문 10억번
}

function App(){
    let result = 함수(); // 재랜더링할때마다 10억번의 반복문이 실행된다.
}
function 함수() {
    return 반복문 10억번
}

function App(){
    let result = 함수();
    useMemo(()=>{return 함수()},);// 처음 컴포넌트 랜더링시 1회만 실행하며 이후에는 실행하지 않는다.
    useMemo(()=>{return 함수()},[state]); // 이러면 state가 변화할때만 실행된다 
}