memo

✒️ 2025-05-28 10:49 내용 수정


Component의 props가 변경되지 않을 때 리렌더링을 건너뛰도록 지정하는 함수

// TargetComponent의 메모화된 Component를 얻을 수 있다
const MemoizedComponent = memo(TargetComponent, arePropsEqual);
import { memo } from 'react';

const TestComponent = memo(function TestComponent({ count }) {
	return (
		<h1>메모화된 Component 테스트 {count}</h1>
	)
});

export default TestComponent;
import MemoTest from './component/MemoTest';

function App() {
	return(
		<div>
	        <h2>다른 테스트</h2>
	        <MemoTest/>
	    </div>
	)
}
import { useState, memo } from "react";

function MemoTest() {
    let [name, setName] = useState('');
    let [count, setCount] = useState(0);

    const handleClick = function() {
        setCount(count+1);
    }

    const handleChange = function(e) {
        setName(e.target.value);
    }

    return(
        <>
            <button onClick={handleClick}>숫자 {count}</button>
            <input value={name} onChange={handleChange}></input>
            <Test name={name} />
        </>
    )
}

const Test = memo(function Test({ name }) {
	console.log(`${name}이 변경됨`);
	return(
		<h2>{name}으로 메모화된 Component 테스트</h2>
	)
})

export default MemoTest;

react memo 1.png