본문 바로가기

⭐ React (리액트)/리액트 기본

8. useMomo

728x90
반응형

# 특정 함수가 특정 시점에 실행되도록 메모라이제이션 하는 역할 인거 같다.

import { useMemo, useState } from 'react';

function App() {
  const [list, setList] = useState([1, 2, 3, 4]);
  const [str, setStr] = useState('합계');

  // 함수 선언
  const getAddResult = () => {
    let sum = 0;
    list.forEach((i) => (sum = sum + i));
    console.log('sum 함수 실행됨', sum);
    return sum; // 함수의 결과값을 반환한다. (여기서는 sum 함수의 결과값을 반환한다.)
  };

  // usememory 사용하기, getAddResult 함수를 기억하고, list가 실행될때만 실행한다.
  const addResult = useMemo(() => getAddResult(), [list]); // 이함수를 기억하고 있겠다는 뜻.

  return (
    <div>
      <button
        onClick={() => {
          setStr('안녕');
        }}
      >
        문자 변경
      </button>
      <button
        onClick={() => {
          setList([...list, 10]);
        }}
      >
        리스트값 추가
      </button>
      <div>
        {list.map((i) => (
          <h1>{i}</h1>
        ))}
      </div>
      {/* 위에서 선언한 함수를 실행한다. */}
      <div>
        {str}: {addResult}
      </div>
    </div>
  );
}

export default App;

강의를 한번듣고는 완전히 이해하기 힘드니... 여러번 반복해서 들을 필요가 있다...

728x90
반응형

'⭐ React (리액트) > 리액트 기본' 카테고리의 다른 글

yarn 및 styled-components 설치하기  (0) 2022.05.18
9. useRef  (0) 2022.05.18
7. useEffect (import & export)  (0) 2022.05.18
6. userState  (0) 2022.05.17
5. 배열 수정하기 (map과 spread응용)  (0) 2022.05.17