
[React] 얕은 복사와 불변성
·
React
개인 프로젝트에서 드래그 앤 드랍 기능을 구현 중이었는데, 의문이 들었다.배열의 순서를 변경하는 과정에서, 왜 Array.from()을 이용해서 얕은 복사를 할까?결론부터 말하면 참조값이 변경되어야 React가 상태 변경을 감지할 수 있기 때문이다.그리고 불변성의 원칙을 지키기 위함이다.그럼 하나씩 더 자세히 살펴보자.얕은 복사를 해서 새로운 배열 인스턴스를 생성하면, 배열 자체는 새로운 참조가 되지만, 배열 내부 객체들은 여전히 원본과 같은 객체를 참조한다.하지만 이렇게 최상위 레벨에서는 새로운 참조값이 생성되지만, 내부 객체는 여전히 원본과 동일한 참조를 공유한다.드래그 앤 드롭 로직같은 경우엔 항목의 순서만 변경하고 항목 자체의 내용은 수정하지 않기 때문에 원본과 같은 객체를 참조해도 상관이 없다...