TIL24-01 리액트에서 불변성이 지켜져야 하는 이유

김태혁·2023년 2월 6일
0

TIL

목록 보기
77/205

React에서 불변성이 지켜져야 하는 이유

  • 원시형데이터 ( 원시형데이터 숫자, 문자, 불린, undefined, null,symbol)
    할당 받은 메모리 주소값과 그 안의 데이터는 변하지 않기 때문에
    불변성이 있다. 여러개의 변수가 같은 값을 선언하더라도 데이터 자체의 주소값이
    변하지 않는다.

  • 참조형데이터 (객체, 배열, 함수)
    할당 받은 메모리 주소값을 그대로 두고, 그 안의 데이터가 변하기 때문에 불변성이 없다.
    불변성을 지킨다의 의미는 메모리 영역에서 값을 변경할 수 없게 한다, 라는 의미다.
    왜냐하면, 리액트의 state 변화 감지 기준은 콜 스택의 주소값이기 때문이다.

  • 리액트는 콜 스택의 주소값만을 비교해 상태 변화를 감지하는데, 이를 얕은 비교라고 한다.
    이것이 리액트의 state를 빠르게 감지할 수 있는 장점이자 불변성을 유지해야 하는 이유이다.
    이렇기 때문에 리액트에서의 불변성이 없는 데이터 같은 경우에는 데이터 렌더링이 되지 않는 문제가 발생한다. 그래서 스프레드 문법과 같은 방법을 통해 깊은 복사를 하여 변경된 데이터 값을 그대로 다른 콜스택 주소값에 할당해야한다.
profile
도전을 즐기는 자

0개의 댓글