setState는 바뀐 값을 컴포넌트의 수명주기에 묶어둔다. 리렌더링 시 const로 선언한 값으로 다시 새 변수를 만들어준다.
React에서 객체와 배열 타입의 상태를 다룰 때 불변성(immutability)을 지켜야하는 이유
렌더링 성능 최적화 방식 때문
리액트에선 부모 컴포넌트가 리렌더링되면 기본적으로 자식 컴포넌트들 또한 리렌더링 된다. 이때 변경사항이 없는 컴포넌트들도 리렌더링 되기 때문에, 이전에 컴포넌트가 들고 있던 Props와 새로 받아올 Props를 비교할 수 있도록 선언한 객체나 배열을 다른 값으로 변경하고 싶을땐 복제해 새로운 객체나 배열을 생성해준다. 불변성을 지키면서 객체와 배열 업데이트하기