Framework & Library/React

React 기초 - useMemo 함수

임빈영 2021. 9. 22. 18:22

useMemo 함수의 사용

import { useState, useMemo } from 'react';
import './App.css';

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

  const getAddResult = () => {
    let sum = 0;

    list.forEach((i) => (sum += i));
    console.log(sum);

    return sum;
  };

  return (
    <div>
      <button
        onClick={() => {
          setString('안녕');
        }}
      >
        문자 변경
      </button>

      <button
        onClick={() => {
          setList([...list, 10]);
        }}
      >
        리스트값 추가
      </button>
      <div>
        {list.map((item) => (
          <h1>{item}</h1>
        ))}
      </div>
      <div>
        {string} : {addResult}
      </div>
    </div>
  );
}

export default App;

위 코드는 문자를 변경하는 버튼을 누를 때마다 getAddResult() 함수가 실행되는 비효율적인 과정이 발생한다.

이러한 비효율적인 과정을 생략하기 위해 useMemo() 함수의 사용이 필요하다.

 

const addResult = useMemo(() => getAddResult(), [list]);

useMemo() 함수를 통해 addResult() 함수를 추가해준다.

첫 번째 매개변수는 호출할 함수를 명시해 주고, 두 번째는 의존관계 설정에 대한 매개변수이다.

즉, list 값의 변경이 일어날 때만 getAddResult() 함수를 실행한다는 의미이다.


 

GitHub - qlsdud0604/react-basic: 리액트의 기초를 학습하는 공간

리액트의 기초를 학습하는 공간. Contribute to qlsdud0604/react-basic development by creating an account on GitHub.

github.com

 

728x90