-
React - 연산한 값 재사용(useMemo)React 2020. 9. 11. 01:41
주로 성능 최적화에 사용
이전에 만든 컴포넌트에서 active가 true인 값들의 수를 세는 것 만들기
React - useEffect Hook
언제 사용? - react 컴포넌트가 처음 화면에 나타날 때 - 사라질 때 - 컴포넌트의 상태가 업데이트될 때 - 리렌더링 될 때마다 어떤 작업 반복할 때 ※ 마운트 / 언마운트 - 마운트는 컴포넌트가 나��
startersdev.tistory.com
- App.js -
맨 위에 함수 추가
function countActiveUsers(users){ console.log('활성 사용자 수를 세는 중...'); return users.filter(user => user.active).length; };
함수 사용
const count = countActiveUsers(users); return ( <> <CreateUser username={username} email={email} onChange={onChange} onCreate={onCreate}/> <UserList users={users} onRemove={onRemove} onToggle={onToggle}/> <div>활성 사용자 수: {count}</div> </> );
이렇게만 하면, 활성 사용자 수를 컴포넌트가 리렌더링 될 때마다 계속 실행된다.
문자 입력할 때마다 수를 다시 세고 있음
useMemo 사용
- 특정 값이 변할 때만 실행하게 함
- 원하는 값이 바뀌지 않았다면 리렌더링 할 때, 이전에 만들어 놓은 값을 재사용하게 함
- App.js -
import React, { useRef, useState, useMemo } from 'react';
...
// const count = countActiveUsers(users); const count = useMemo(() => countActiveUsers(users), [users]);
첫 번째 파라미터 - 함수 형태
두 번째 파라미터 - deps
-> countActiveUsers()함수는 users가 바뀔 때에만 호출이 되고, 그게 아니라면 이전에 만들어놓은 값을 호출
'React' 카테고리의 다른 글
React - 컴포넌트 리렌더링 방지(React.memo) (0) 2020.09.11 React - 함수 재사용(useCallback) (0) 2020.09.11 React - useEffect Hook (0) 2020.09.11 React - 배열에서 항목 수정하기 (0) 2020.09.10 React - 배열에서 항목 제거하기 (0) 2020.09.10