항해 13일차(state,불변성)

Undong·2023년 4월 16일
0

항해구구

목록 보기
13/52
post-thumbnail

항해 13일차

오늘은 반 정도 들었던 강의의 나머지를 다 들었다.

간략하게 보자면

State

State는 컴포넌트 내부에서 바뀔 수 있는 값을 의미한다. State를 만들 때 useState()를 사용한다.

State를 사용한 예시를 보자면

import React, { useState } from 'react';

function GrandFather() {
  const [name, setName] = useState("김할아"); // 이것이 state!
  return <Mother grandFatherName={name} />;
}

// .. 중략 

이런 코드를 볼 수 있다.

이 안에서 useState의 구조를 보자면,

const [ value, setValue ] = useState( 초기값 )

여기서 value는 기본 상태이고 useState(초기값)은 value의 초기 값을 의미한다. 또한 setValue는 value를 변경할 수 있다.

불변성

메모리에 있는 값을 변경할 수 있는 것을 말한다, 자바스크립트의 데이터 형태 중에 원시 데이터는 불변성이 있고, 원시 데이터가 아닌 객체, 배열, 함수는 불변성이 없다.

즉 원시 데이터를 보면 let 변수1 = 1이라고 선언하면, 메모리에는 1이라는 값이 저장이 된다. 그리고 변수1는 메모리에 있는 1을 참조한다. 여기서 let 변수2 = 1라는 변수를 선언해보자. 이때도 메모리에 생성되어 있는 1이라는 값을 참조한다. 따라서 변수1과 변수2는 같은 메모리 값을 바라보고 있다.

하지만 원시 데이터아닌 값인 (객체, 배열, 함수)는 원시 데이터와 반대이다. . let obj_1 = {name: ‘lee’} 이라는 값을 선언하면 메모리에 obj_1이 된다.. 그리고 이어서 let obj_2 = {name: ‘lee’} 이라고 같은 값을 선언하면 obj_2라는 메모리 공간에 새롭게 저장이 된다.

즉 원시데이터는 수정을 했을 때 메모리에 저장된 값 자체는 바꿀 수 없고, 새로운 메모리 저장공간에 새로운 값을 저장한다. 원시데이터가 아닌 데이터는 수정했을 때 기존에 저장되어 있던 메모리 저장공간의 값 자체를 바꿔버린다. .

profile
console.log("Hello")

0개의 댓글