인프런 커뮤니티 질문&답변

이은아님의 프로필 이미지
이은아

작성한 질문수

[리뉴얼] React로 NodeBird SNS 만들기

리렌더링 이해하기

리렌더링 질문

작성

·

184

0

- useCallback은 캐싱이니까 이전 컴포넌트랑 지금 컴포넌트랑 [ ] 부분이 바뀌지 않는 이상 똑같은걸로 친다. 
- return () 안 부분에서는 실제화면에서 바뀐 부분만 다시 그린다.
라고 하셨는데, 아이디나 비밀번호 Input 부분 onChange 에 의해서 value 에 있는 id 와 password가 바뀌면 return () 안에 Input 의 리렌더링을 방지하나요? 아니면 리렌더링이 되나요? 이 부분이 약간 헷갈립니다!!

답변 2

1

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

리렌더링은 발생하고요. 다만 input과 password를 쓰고 있는 jsx 부분만 다시 그립니다.

0

이은아님의 프로필 이미지
이은아
질문자

아하 그러면 useCallback 은 return () 안에서의 컴포넌트의 리렌더링 방지를 위한 것이 아닌 return () 밖의 함수자체에 대한 재사용? 을 위한것 이라고 생각하면 되나요??

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

아뇨 리렌더링 방지 기능도 합니다

이은아님의 프로필 이미지
이은아
질문자

 useCallback() 을 쓰면 [] 안에 들어가는 값이 변하지 않는 이상, 함수가 새로 만들어지지 않게 방지하는 기능 + 컴포넌트 리렌더링 방지 기능 이라고 생각하면 되나요? 
만약, 자식컴포넌트에 props로 useCallback()이 적용된 함수를 전달하면 그 자식컴포넌트의 리렌더링을 방지하게 되니까요?

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

네 맞습니다

이은아님의 프로필 이미지
이은아
질문자

답변 감사합니다!

이은아님의 프로필 이미지
이은아

작성한 질문수

질문하기