더북(TheBook)

12.3.2 state는 읽기 전용

 

리덕스의 상태, state 값은 읽기 전용입니다. 이 값은 절대로 직접 수정하면 안 됩니다. 그렇게 하면 리덕스의 구독 함수를 제대로 실행하지 않거나 컴포넌트의 리렌더링이 되지 않을 수 있습니다.

상태를 업데이트할 때는 언제나 새 상태 객체를 만들어서 넣어 주어야 합니다. 업데이트를 할 때마다 새 객체를 만들어야 하다니, 메모리 누수가 일어나지는 않을까 걱정되나요? 걱정하지 마세요. Object.assign을 사용한다고 해서 이전에 사용하던 객체들이 메모리에 누적되지는 않습니다. 상태 레퍼런스가 사라지면 자동으로 메모리 관리를 합니다. 또 nested된 객체가 있을 때 (여러 괄호로 감싼) 그 내부의 깊은 값까지 복사하는 것이 아니라, 객체 내부의 키 레퍼런스만 복사하므로 객체가 복잡하다고 해서 성능이 악화되지는 않습니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.