리액트에서의 불변성 #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
Uh oh!
There was an error while loading. Please reload this page.
-
불변성
불변성은 값이나 상태를 변경할 수 없는 것을 의미함
리액트에서의 불변성
리액트에서 불변성을 지키는 이유는 상태 업데이트를 하는 원리 때문임
리액트는 상태 값 업데이트 시 얕은 비교를 수행함
객체 속성 하나하나를 비교하지 않고 참조값만 비교해서 상태 변화를 감지함
상태 변화를 감지하기 위해서는 배열이나 객체와 같은 참조 자료형은 새로 생성해서 새로운 참조값을 만들어야 함
불변성을 지키면, 원본 데이터를 직접 수정하지 않고 복사본을 만들어 수정하기 때문에 사이드 이펙트 또한 방지할 수 있음
동일한 객체에 대해서, 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