inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

실전 리액트 프로그래밍

리액트 내장 훅 살펴보기

useCallback, useMemo

182

Prov

작성한 질문수 18

0

두개의 차이점이

함수를 return , 값을 return 하는 거 같은데

혹시 사용시점이나 명확한 차이점이 더 존재할까요 ?

import React, { useMemo, useState } from 'react';

export default function App(){
const [name, setName] = useState();
const [age, setAge] = useState(0);
const [v1, setV1] = useState(0);

const value = useMemo(() => runExpensiveJob(name, age), [name, age]);

return (
<div>
<p>{`name is ${name}`}</p>
<p>{`v1 is ${v1}`}</p>
<Edit onSave = {value} setName = {setName} setAge = {setAge}></Edit>
<button onClick={() => {
setV1(Math.random())
}}>
변경
</button>
</div>
);

}

const Edit = React.memo(function ({ onSave, setName, setAge }) {
console.log("UserEdit render");
return null;
});

function runExpensiveJob(v1,v2) {}
이렇게 useCallback이아닌 useMemo를 사용할 경우 리렌더링이 되지 않더라구요
명확한 차이점이 뚜렷하지 않아 헷갈립니다
단순히 useCallback은 함수를 리턴할 경우 사용하고
useMemo는 값을 리턴할 때 사용하는건가요 ?

redux react

답변 1

1

이재승

안녕하세요
반환하는 값이 함수인지 아닌지에 따라 구분할 수도 있지만, 아래 1번 코드처럼 함수를 반환하는 경우에도 useMemo 를 사용할 수 있습니다 (makeSomeFunc 가 함수를 반환한다고 가정)
함수를 반환하더라도 연산 자체가 부담스러운 경우에는 useCallback 보다 useMemo 가 나을 수 있습니다.

const f1 = useMemo(() => makeSomeFunc(name, age), [name, age]); // 1
const f2 = useCallback(makeSomeFunc(name, age), [name, age]); // 2

자동완성기능이 안되네요 ..

0

555

3

화면에 에러가나네요 ...

0

562

2

setValue 함수 질문 있습니다.

0

870

1

찾아야한다 실습 문의

0

495

1

훅 기초 익히기 - 배치 처리와 순차적 처리의 차이

0

507

1

cra, next.js 관련 질문 드립니다!

0

627

1

useState 배열 비구조화 문법 질문!

0

277

1

Uncaught TypeError: Failed to execute 'removeChild' on 'Node': parameter 1 is not of type 'Node'

1

1106

2

Saga 오류 이거 혹시 왜이런지 알수 있을까요?

0

396

2

http://localhost:3001/user/search?keyword=u 이걸로 데이터를 보는데 저는 사이트에 연결할 수 없다고 나오네요

0

727

1

match

1

509

1

버튼이 생성되지 않습니다 .

0

303

1

혹시 import 옆에 파일 사이즈 표시 어떻게 하나요?

0

282

1

saga 문제

0

267

1

에러가 발생하는데 이유가뭘까요..?

0

421

2

선생님과 똑같이 했는데 다 rendering 됩니다.

0

231

1

컴포넌트와 컨테이너의 기준

0

340

1

커스텀훅의 개념과 함수차이

1

1223

1

useEffect 실전 활용법(1) 강의에서 질문있습니다.

0

364

1

리덕스, 사가파일들의 관리

0

229

1

useImperativeHandle 질문 입니다.

0

298

1

컴파일 문의드립니다.

0

220

1

React.memo 관련 질문이 있습니다.

0

395

1

Context API vs Redux 사용 빈도

0

227

1