inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

React로 NodeBird SNS 만들기

2-4. 커스텀 훅 재사용하기

sinup.js 에서 useInput 의 useCallback 의 두번째 인자가 빈 배열인 이유가 궁금합니다.

해결된 질문

609

ryu sin

작성한 질문수 28

0

 

안녕하세요. 좋은 강좌 잘 듣고 있습니다. 

 

아래 코드와 같이 useInput을 커스텀 훅으로 만들어 사용하셨는데요, 

두번째 인자인 배열[]이 빈 배열이면 한번만 실행하게 되고, 배열 안에 비교할 부분이 들어가면 그것을 기준으로 비교하는 것으로 알고 있습니다. 

그런데 아래와 같이 빈 배열일 경우 useCallback이 무엇을 기준으로 기억을 할 지 않할지 결정하는 건가요?

일단 코드 자체는 무리 없이 작동하는것 같습니다. 

질문을 요약하면 

 

1. useCallback에서 두번째 배열이 없을 시 어떻게 기존 상태와 비교를 하는지. 

2. 만약 1번이 맞다면 이경우 한번만 실행되야 정상인데 왜 인풋을 할때마다 아무 이상없이 실행되는지 궁금합니다. 

 

export const useInput = (initValue = null) => {
const [value, setter] = useState(initValue);
const handler = useCallback((e) => {
setter(e.target.value);
}, []);
return [value, handler];
};

react javascript

답변 2

1

제로초(조현영)

배열에 요소들이 없을 시 처음 기억해둔 함수를 끝까지 쓰는 것입니다.

한 번만 실행되는 것은 useEffect의 경우고요. 다른 것들은 처음 기억해둔 값이나 함수를 끝까지 계속 쓴다고 보시면 됩니다.

0

ryu sin

아.. 드디어 완벽하게 이해했습니다 !  간단 명료하게 답장해 주셔서 감사합니다  ! 
use 페밀리들의 차이가 이제 좀 클리어해 지네요. 
좋은 주말보내세요 : ) 

 

next 10 이상에서는 redux dev tool 구동이 안되나요?

0

272

1

세션 갱신 문의 건

0

484

7

배포 진행 후 Highlight updates components render 표시

0

445

1

똑같은 기능을 하는 테이블

0

448

4

관계형

0

312

2

프론트 서버를 이용하지 않는경우

1

299

3

인피니트 스크롤링 사용시 오류

0

278

0

계속 이런에러가 떠서 해결하기는 했는데 어떤 의미인지 모르겠습니다.

0

435

2

req.user가 언제 생성되나요??

0

330

2

Cannot read property 'id' of null 에러

0

333

1

리트윗한 게시글 불러오는 sequelize

0

252

1

result.data에서 images인 이유

0

281

2

takeLatest에 대한 질문입니다.

1

342

2

프론트에서 express를 사용하지 않을때 동적라우팅

0

501

6

getInitialProps가 클라이언트에서 수행되는 이유?

0

258

1

리로드하면 팔로우 언팔로우 값이 초기화 되는 문제입니다.

0

445

2

스타일드 컴포넌트와 className을 통한 스타일 적용의 차이에 대해 궁금합니다

0

585

2

할인 쿠폰 사용이 안되는되요 (848-f9af83f183e3)

0

365

1

nodejs mvc 패턴

0

976

4

사용하고 보니, 람다 구성이 궁금합니다!

0

266

1

제로초님

0

445

1

새로고침 로그인 풀림 문제.

0

247

1

안녕하세요. 강의 너무 감사합니다

0

157

1

제로초님

0

170

1