강의

멘토링

커뮤니티

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

LEE님의 프로필 이미지
LEE

작성한 질문수

실전 리액트 프로그래밍

콘텍스트 API로 데이터 전달하기

랜더링 관련 질문이 있습니다.

작성

·

144

3

{{username, age}} -> {user} 객체 하나로 변경 시에는 왜 새로운 객체가 생성되지 않나요?

이해가 잘 되지 않네요.

답변 1

0

이재승님의 프로필 이미지
이재승
지식공유자

안녕하세요
12:05 부분 말씀하신거죠?

useState 로 관리되는 user 객체는 렌더링할 때마다 새로운 객체가 만들어지지 않습니다
오직 setUser 함수를 호출해야 user 객체가 변경되죠

반면 컴포넌트 내부에서 중괄호를 사용해서 정의한 객체는 컴포넌트 함수가 실행될 때마다 새로운 객체가 만들어집니다
아래 App 컴포넌트 함수를 실행하면 항상 false 가 출력될겁니다
매번 새로운 객체가 만들어지기 때문이죠

let prev;
function App() {
  const next = { a: 123 };
  console.log(next === prev);
  prev = next;
}

LEE님의 프로필 이미지
LEE

작성한 질문수

질문하기