[React] 리액트에서 불변성을 지키는 이유

2022. 8. 2. 19:38·Front-End/React

리액트에서 불변성을 지키는 이유

불변성이란 사전적 의미로 값이나 상태를 변경할 수 없는 것을 의미한다.

React가 불변성을 지키는 이유는 부모 컴포넌트가 re-rendering 되거나 State, Props 에 변화가 일어난 경우 렌더링이 일어나게 된다.

  1. 참조 타입(array 등)에서 객체나 배열의 값이 변할 때 원본 데이터가 변경 되어서 이 원본 데이터를 참조하고 있는 다른 객체에서 오류가 발생 할 가능성이 있기 때문에 프로그래밍의 복잡도가 올라간다.
  2. 리액트에서 화면을 업데이트할 때 이전 값과 비교해서 변경된 사항을 확인한 후 업데이트 하기때문에 불변성을 지켜줘야 합니다.

 

불변성을 지키는 방법

  • 참조타입을 변경하는 것이 아닌, 새로운 배열을 반환하는 메소드를 사용
  • 스프레드 문법, map, filter, slice, reduce 등
  • 원본 데이터를 변경하는 메소드 : splice, push
// 원시타입
const [number, setNumber] = useState(0)
setState(1)

// 참조타입
const [numberarray, setNumberarray] = useState({1, 2, 3, 4})
setState({...numberarray, 5}

 


참조

https://gusehd66.tistory.com/entry/React-React가-불변성을-지키는-이유?category=1216213

https://www.inflearn.com/course/따라하는-리액트/unit/119864?tab=curriculum

반응형
'Front-End/React' 카테고리의 다른 글
  • [React] 리액트 라우터(react-router-dom) v6 사용법
  • [React] useCallback, useMemo, React.memo를 이용한 최적화 및 차이점
  • [React] Props 와 State
  • [React] Hooks란?
LightSource
LightSource
어제보단 발전한 오늘의 나를 위한 블로그
    반응형
  • LightSource
    LightSourceCoder
    LightSource
  • 전체
    오늘
    어제
    • 분류 전체보기 (152)
      • Git (4)
      • Language (6)
        • Java (6)
      • Back-End (63)
        • Spring Boot (4)
        • MyBatis (1)
        • Oracle (1)
        • PL SQL (3)
        • JPA (26)
        • Spring Data JPA (5)
        • Spring MVC (8)
        • Spring (12)
        • Spring Security (2)
        • Redis (1)
      • Front-End (38)
        • 아이오닉 (2)
        • JSP (7)
        • JavaScript (4)
        • React (16)
        • TypeScript (3)
        • Angular (6)
      • AWS (1)
      • CI & CD (1)
      • 개발지식 (13)
        • 네트워크 (9)
        • CS 지식 (4)
      • 데이터모델링 (2)
      • Tool (1)
      • 프로젝트 (5)
      • 독후감 (2)
      • 잡생각 (0)
      • 면접 준비 (1)
      • 알고리즘 (14)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    배요소열추가
    리액트
    배열요소삭제
    배열요소수정
    react
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
LightSource
[React] 리액트에서 불변성을 지키는 이유
상단으로

티스토리툴바