리액트에서의 불변성 #9
ghdtjgus76
started this conversation in
General
Replies: 1 comment 4 replies
-
|
Beta Was this translation helpful? Give feedback.
4 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
불변성
불변성은 값이나 상태를 변경할 수 없는 것을 의미함
리액트에서의 불변성
리액트에서 불변성을 지키는 이유는 상태 업데이트를 하는 원리 때문임
리액트는 상태 값 업데이트 시 얕은 비교를 수행함
객체 속성 하나하나를 비교하지 않고 참조값만 비교해서 상태 변화를 감지함
상태 변화를 감지하기 위해서는 배열이나 객체와 같은 참조 자료형은 새로 생성해서 새로운 참조값을 만들어야 함
불변성을 지키면, 원본 데이터를 직접 수정하지 않고 복사본을 만들어 수정하기 때문에 사이드 이펙트 또한 방지할 수 있음
동일한 객체에 대해서, push, pop과 같은 메서드를 사용하게 되면, 이는 새로운 참조값이 만들어지지 않기 떄문에 리렌더링이 되지 않게 됨
리액트에서 요구하는 불변성을 지킬 수 있는 방법은 아래와 같음
참고 자료
https://velog.io/@jma1020/%EB%A6%AC%EC%95%A1%ED%8A%B8%EC%97%90%EC%84%9C-%EB%B6%88%EB%B3%80%EC%84%B1%EC%9D%B4%EB%9E%80
Beta Was this translation helpful? Give feedback.
All reactions