빵부스러기

[React]메모이제이션으로 불필요한 렌더링 줄이기

borobong230 2023. 12. 11. 15:09

React 에서는 다양한 이유로 컴퍼넌트가 리렌더링 되곤 합니다.
불필요한 렌더링은 성능저하의 원인이 되거나, 유저에게 안좋은 경험으로 이어질 수 있습니다.

 

그렇다면 어떻게 불필요한 렌더링을 줄일 수 있을까요?

개선 전 코드

export default function App() {
	
	return (
		...
		<SpecialComponent>
		...
	)
}

 

SpecialComponent라는 가상의 컴퍼넌트가 있는데,

이 컴퍼넌트가 불필요하게 렌더링 된다면

메모이제이션으로 이를 간단하게 해결할 수 있습니다.

 

개선 후 코드

export default function App() {
	const specialComponent = React.useMemo(() => {
			<SpecialComponent>    	
    },[dependency...])
	return (
		...
		{specialComponent}
		...
	)
}

 

위처럼 메모이제이션을 통해 불필요한 렌더링이 발생을 막을 수 있습니다.

 

그렇다면 모든 곳에 메모이제이션을 사용하면 성능이 최적화되는 걸까?

그렇지 않습니다.

메모이제이션을 한다는 것은

어떤 한 곳에서 데이터를 갖고 저장하기 한다는 뜻입니다.

이 말은 메모이제이션을 모든 곳에 사용하게 된다면, 오히려 성능에 저하가 올 수 있습니다.

 

'빵부스러기' 카테고리의 다른 글

[임시] IPv4 vs IPv6  (0) 2023.12.13
[임시] 리액트 컴포넌트의 렌더링 조건  (0) 2023.12.12
자바스크립트 타입캐스팅  (0) 2023.12.10
[JavaScript] e.target  (0) 2023.12.09
peer to peer (p2p)  (1) 2023.12.08