[React] Hook - useCallback( ), useMemo( )
7126 단어 ES6JavaScriptreact hookReactES6
useCallback()과 useMemo()
- 주로 렌더링 성능을 최적화 해야 하는 상황에서 사용한다.
useCallback()
- 함수를 새로 생성하지 않아도 될때 사용한다.
useMemo()
- 값을 새로 생성하지 않아도 될때 사용한다.
useCallback()과 useMemo()
사용법
import React, { useState, useRef, useCallback, useMemo } from 'react';
const App = () => {
const [list, setList] = useState([]);
const input = useRef(null);
// useCallback
const addList = useCallback(() => {
let val = input.current.value;
let _list = [...list];
_list.push(val);
setList(_list);
}, [list]); // list의 값이 변경 되어야 addList라는 함수를 다시 생성한다.
// useMemo
const listMemo = useMemo(() => {
return (
list.map(
(data, idx) => {
return <li key={idx}>{data}</li>;
}
)
)
}, [list]); // list의 값이 변경되어야 list를 다시 생성한다.
return (
<div>
<ul> { listMemo } </ul>
// useMemo에 저장된 값을 불러온다.
<input ref={input} />
// input이라는 변수에 input이라는 Element를 참조시킨다.
<button onClick={addList}>추가</button>
// addList의 함수를 연결시킨다.
</div>
);
}
export default App;
이와 같이 list의 값이 변경 되어야 함수와 값들을 새로 생성시키므로 인하여 렌더링 해야 할 컴포넌트가 많을 경우에는 list의 값의 변경사항이 없는데 list관련 함수와 값을 새로 생성 시킬 필요가 없다.
그런 상황일 때 useCallback
과 useMemo
를 사용한다.
Author And Source
이 문제에 관하여([React] Hook - useCallback( ), useMemo( )), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@jsw9330/React-Hook-useCallback-useMemo저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)