티스토리 뷰

프론트엔드/react

[Hook] useMemo

첸첸 2022. 3. 19. 22:51
728x90
import logo from './logo.svg';
import './App.css';
import { useState, useMemo } 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);
    return sum;
  };

  //list가 변경 되었을 때만 getAddResult()가 실행 될 수 있게 기억
  const addResult = useMemo(() => getAddResult(), [list]);

  return (
    <div>
      <button
        onClick={() => {
          setList([...list, 1]);
        }}
      >
        add
      </button>
      <button
        onClick={() => {
          setStr('sum');
        }}
      >
        문자변경
      </button>
      {list.map((i) => (
        <h1>{i}</h1>
      ))}
      <div>
        {str} : {addResult}
      </div>
    </div>
  );
}

export default App;

'프론트엔드 > react' 카테고리의 다른 글

[Hook] useRef  (0) 2022.01.31
[react] useContext  (0) 2022.01.13
[react] useEffect  (0) 2022.01.06
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함