리렌더링을 방지하여 컴포넌트의 리렌더링 성능 최적화를 해줄 수 있는 React.memo라는 함수에 대해서 알아보자.
이 함수를 사용하면, 컴포넌트에서 리렌더링이 필요한 상황에서만 리렌더링을 하도록 설정해줄 수 있다.
그냥 감싸주기만 하면 된다.
import React from 'react';
const User = React.memo(function User({ user, onRemove, onToggle }) {
return (
<div>
<b
style={{
cursor: 'pointer',
color: user.active ? 'green' : 'black'
}}
onClick={() => onToggle(user.id)}
>
{user.username}
</b>
<span>({user.email})</span>
<button onClick={() => onRemove(user.id)}>삭제</button>
</div>
);
});
function UserList({ users, onRemove, onToggle }) {
return (
<div>
{users.map(user => (
<User
user={user}
key={user.id}
onRemove={onRemove}
onToggle={onToggle}
/>
))}
</div>
);
}
export default React.memo(UserList);
'Development > React.js' 카테고리의 다른 글
[React] Redux (0) | 2022.01.21 |
---|---|
[React] 라이프 사이클 (0) | 2022.01.21 |
[React] useCallback 을 사용하여 함수 재사용하기 (0) | 2022.01.04 |
[React] useMemo를 사용하여 연산한 값 재사용하기 (0) | 2022.01.04 |
[React] useEffect로 마운트/언마운트/업데이트시 할 작업 설정 (0) | 2022.01.04 |