- immutable.js : https://immutable-js.com/
Map
,List
,Seq
,fromJS
페이스북
에서 만든 라이브러리
개요
메모이징된 컴포넌트, 값을 재연산하기 전에 검사하는 compare 로직이 있다.
이 compare 로직은 디펜던시에 명시된 값들을 얕은검사(
shallow comparison
)로만 비교하여 변화가 있는지 여부를 확인한다.문제
따라서 객체의 reference는 바뀌지 않은 채로 내부의 값만 변화된 경우에는 변화로 인지하지 못하고 재연산을 수행하지 않는다.
대안
그래서 깊은비교가 필요한 경우에는
immutable
한 데이터를 사용하는 것이 권장된다.값이 변하는 경우에는 무조건 새로운 객체를 할당하는 방식이다.
따라서 내부의 값을 확인하지 않더라도, 어떠한 값이 바뀌었다면 새로 할당되어
reference
가 변경되므로 memo
의 default인 얕은검사로도 값이 변했다고 인지할 수 있게된다.