Memoization

OwlSuri·2022년 4월 27일
0

useState같은 hook만 빼고 다 새로 만들어짐

자식까지도 새로 그려짐

규모가 클수록 심해짐

react developer Tool

렌더링 될때마다 깜빡거리면서 화면에 선 표시됨

자식까지 렌더링 될 필요 있나? -> 메모이제이션
이미 있는 것은 메모해두고 렌더링 하지 않음

자식컴포넌트에 이렇게 memo를 추가하고 HOF로 사용

import { memo } from 'react'

function MemoizationPresenterPage(){
    console.log("프리젠터가 렌더링됩니다!")
    return(
        <div>
            <div>=============================</div>
            <h1>여기는 프리젠터 입니다!</h1>
            <div>=============================</div>
        </div>
    )
}

export default memo(MemoizationPresenterPage);

프리젠터는 렌더되지 않았다.

큰 서비스에서는 차이가 난다!

state가 계속 다시 만들어지는 것 막으려면 -> useMemo
엄청 많이 쓰이지는 않음...


import { useMemo, useState } from "react"

const aaa= useMemo(() => Math.random() ,[]) 
// 컴포넌트 안에서 써야할때

리렌더되어도 랜덤숫자 안바뀜

의존성배열부분에 변수 적으면 렌더링 다시될때 리렌더되면서 state바뀜

자식컴포넌트에는 리렌더가 필요한 state만 props로 넘기면 됨

useMemo로 useCallback 만들 수 있음

    useMemo로 useCallback 만들어보기
     const onClickCountState = useMemo(() => {
         return () =>{
         setCountState(countState + 1)
     }
    },[])

메모 남용 금지
퍼포먼스 떨어질 수 있음(어디에 저장해놓는 것이므로)

profile
기억이 안되면, 기록을 -

0개의 댓글