더북(TheBook)

11장에서는 컴포넌트 업데이트 성능을 어떻게 최적화해야 하는지, 불변성을 유지하면서 상태를 업데이트하는 것이 왜 중요한지 배웠습니다. 전개 연산자와 배열의 내장 함수를 사용하면 간단하게 배열 혹은 객체를 복사하고 새로운 값을 덮어 쓸 수 있죠. 하지만 객체의 구조가 엄청나게 깊어지면 불변성을 유지하면서 이를 업데이트하는 것이 매우 힘듭니다.

const object = {
  somewhere: {
    deep: {
      inside: 3,
      array: [1, 2, 3, 4]
  },
    bar: 2
},
  foo: 1
};
 
// somewhere.deep.inside 값을 4 바꾸기
let nextObject = {
...object,
  somewhere: {
  ...object.somewhere,
    deep: {
    ...object.somewhere.deep,
      inside: 4
  }
}
};
 
// somewhere.deep.array 5 추가하기
let nextObject = {
...object,
  somewhere: {
  ...object.somewhere,
    deep: {
    ...object.somewhere.deep,
      array: object.somewhere.deep.array.concat(5)
  }
}
};
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.