immutable data structure

Tags
설명
얕은 검사가 아닌 깊은 검사가 되어야 하는 경우
 
 

개요

메모이징된 컴포넌트, 값을 재연산하기 전에 검사하는 compare 로직이 있다.
이 compare 로직은 디펜던시에 명시된 값들을 얕은검사(shallow comparison)로만 비교하여 변화가 있는지 여부를 확인한다.
 

문제

따라서 객체의 reference는 바뀌지 않은 채로 내부의 값만 변화된 경우에는 변화로 인지하지 못하고 재연산을 수행하지 않는다.
 

대안

그래서 깊은비교가 필요한 경우에는 immutable한 데이터를 사용하는 것이 권장된다.
값이 변하는 경우에는 무조건 새로운 객체를 할당하는 방식이다.
 
따라서 내부의 값을 확인하지 않더라도, 어떠한 값이 바뀌었다면 새로 할당되어 reference가 변경되므로 memo의 default인 얕은검사로도 값이 변했다고 인지할 수 있게된다.