리액트의 불변성

정하윤·2022년 12월 1일
0

리액트의 불변성이란?

  • 불변성이란 상태를 변경할 수 없는 것을 의미한다.
    자바스크립트 타입의 불변성

  • 원시 타입은 불변성을 가지고 있고 참조 타입은 가지고 있지 않다.

원시 타입 : Boolean, String, Number, null, undefined, Symbol

참조 타입 : Object, Array

  • 기본적으로 자바스크립트는 원시 타입에 대한 참조 및 값을 저장하기 위해 Call Stack 메모리 공간을 사용하지만 참조 타입의 경우 Heap이라는 별도의 메모리 공간을 사용한다.

원시 타입 → 고정된 크기로 Call stack 메모리에 저장, 실제 제이터 변수에 할당

참조 타입 → 데이터 크기가 정해지지 않고 Call stack 메모리에 저장, 데이터의 값이 heap에 저장되며 변수에 heap 메모리의 주소값이 할당

불변성을 지켜야 하는 이유

  1. 참조 타입에서 객체나 배열의 값이 변할 때 원본 데이터가 변경되어 오류 발생으로 프로그래밍의 복잡도가 상승한다.
  2. 리액트에서 화면을 업데이트할 때 불변성을 지켜서 값을 이전 값과 비교해서 변경된 사항을 확인한 후 업데이트하기 때문에 불변성을 지켜줘야 한다.

불변성을 지키는 방법

  • 새로운 배열을 반환하는 메소드를 사용하면 된다. ex)splice, push

0개의 댓글